代码之家  ›  专栏  ›  技术社区  ›  overexchange

围棋类型转换与类型转换

  •  -1
  • overexchange  · 技术社区  · 2 年前

    在下面的类型转换代码中:

    package main
    
    import "fmt"
    
    const c = 3.2
    const i = 3
    
    func main() {
        var f float64 = i * c // implicit conversion of i
        fmt.Println(f)
    }
    

    1. i & c 是允许隐式转换的非类型化常量。做 C 隐式转换为 float64 在执行乘法之前?

    下面的代码应该演示类型转换:

    package main
    
    import "fmt"
    
    func main() {
        // s := string(97) // works fine, but, Is this type conversion or type casting?
                          // because below line gives error - "cannot convert 97.2 (type untyped float) to type string"
        s := string(97.2)
        fmt.Println(s)
    }
    

    1. string(97) 类型转换还是类型转换?因为 弦(97) 是给予 "a" 但不是 "97" ,这是基于此的类型转换 answer
    1 回复  |  直到 2 年前
        1
  •  2
  •   Burak Serdar    2 年前

    在下面的代码中,常量的乘法是在编译时完成的,然后将结果转换为float并存储在 f 就像64岁一样。运行时没有类型转换。

        var f float64 = i * c 
    

    以下是无效的Go代码,因此它不是转换或强制转换。

        s := string(97.2)
    

    围棋中没有类型转换。

    如果你做到了:

    s:=int(f)
    

    哪里 F 是float,这是一种类型转换,其中 F 转换为 int 分配给 s .