加入收藏 | 设为首页 | 会员中心 | 我要投稿 PHP编程网 - 黄冈站长网 (http://www.0713zz.com/)- 数据应用、建站、人体识别、智能机器人、语音技术!
当前位置: 首页 > 综合聚焦 > 编程要点 > 语言 > 正文

Go 中的可寻址和不可寻址怎样理解?

发布时间:2021-11-03 11:37:55 所属栏目:语言 来源:互联网
导读:可直接使用 操作符取地址的对象,就是可寻址的(Addressable)。比如下面这个例子func main() { name := iswbm fmt.Println(name) // output: 0xc000010200}程序运行不会报错,说明 name 这个变量是可寻址的。但不能说 iswbm 这个字符串是可寻址的。iswbm 是
可直接使用 & 操作符取地址的对象,就是可寻址的(Addressable)。比如下面这个例子   func main() {      name := "iswbm"      fmt.Println(&name)       // output: 0xc000010200  }  程序运行不会报错,说明 name 这个变量是可寻址的。   但不能说 "iswbm" 这个字符串是可寻址的。   "iswbm" 是字符串,字符串都是不可变的,是不可寻址的,后面会介绍到。   在开始逐个介绍之前,先说一下结论   指针可以寻址:&Profile{} 变量可以寻址:name := Profile{} 字面量通通不能寻址:Profile{} # 2. 哪些是可以寻址的? 变量:&x   func main() {      name := "iswbm"      fmt.Println(&name)       // output: 0xc000010200  }  指针:&*x   type Profile struct {      Name string  }    func main() {      fmt.Println(unsafe.Pointer(&Profile{Name: "iswbm"}))      // output: 0xc000108040  } 

(编辑:PHP编程网 - 黄冈站长网)

【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容!

    热点阅读