📜  在 Golang 中复制给定数字的符号(1)

📅  最后修改于: 2023-12-03 15:37:20.451000             🧑  作者: Mango

在 Golang 中复制给定数字的符号

在编程中,有时需要将一个数字的符号复制给另一个数字。例如,如果第一个数字是正数,则第二个数字也是正数;如果第一个数字是负数,则第二个数字也是负数。

在 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 中复制给定数字的符号。