📅  最后修改于: 2023-12-03 15:37:20.451000             🧑  作者: Mango
在编程中,有时需要将一个数字的符号复制给另一个数字。例如,如果第一个数字是正数,则第二个数字也是正数;如果第一个数字是负数,则第二个数字也是负数。
在 Golang 中,可以使用三元运算符和 math 库中的 Abs 函数来实现此功能。
package main
import (
"fmt"
"math"
)
func main() {
var num1, num2 int
fmt.Print("Enter a number: ")
fmt.Scanln(&num1)
// copy sign of num1 to num2
num2 = int(math.Abs(float64(num1))) * func() int {
if num1 < 0 {
return -1
} else {
return 1
}
}()
fmt.Println("num1:", num1)
fmt.Println("num2:", num2)
}
在上面的示例中,首先从用户输入的控制台读取一个数字。然后使用 math.Abs 函数获取该数字的绝对值,并将其乘以一个匿名函数的结果,该匿名函数使用三元运算符检查 num1 的符号,并返回-1(表示负)或 1(表示正数)。最后,将复制了符号的值存储在 num2 中,并输出 num1 和 num2 的值到控制台。
此代码的输出应类似于以下内容:
Enter a number: -7
num1: -7
num2: -7
Enter a number: 12
num1: 12
num2: 12
如上代码片段所示,使用匿名函数和三元运算符可以很容易地在 Golang 中复制给定数字的符号。