gpt4 book ai didi

go - Golang 中的传递属性

转载 作者:IT王子 更新时间:2023-10-29 01:26:08 34 4
gpt4 key购买 nike

这段代码对我来说看起来很反直觉:

var first *byte
var second interface{}

fmt.Println(first, first == nil) // <nil> true
fmt.Println(second, second == nil) // <nil> true
fmt.Println(first == second) // false

据我了解,情况是第一个变量是指向 byte 类型的空变量的指针,而第二个是一个空接口(interface)。因此,由于变量的类型不同,因此它们不被视为相等。

但是如果它们彼此不相等,它们怎么能等于某个第三值呢?不满足传递律的编程语言是否普遍存在?

最佳答案

标识符nil 表示zero value用于 channel 、指针、接口(interface)、函数、映射和 slice 类型。

*byte 的零值不等于 interface{} 的零值。

关于go - Golang 中的传递属性,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/50306016/

34 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com