概述
1. 指针
1.1 指针特性
golang不支持指针运算,保证内存安全
golang有自己的垃圾回收,所以指针没有显示调用摧毁函数
空指针当一个指针被定义后没有分配到任何变量时,它的值为 nil。
nil指针也称为空指针。nil在概念上和其它语言的null、None、nil、NULL一样,都指代零值或空值。
1.2 new和&
new和&均可获取地址,也就是指针
person1 := new(Person)//使用new创建一个person2对象,同时获得person的指针
person2 := &Person{"lisi","man",25}//使用&创建一个person3对象,同时获得person的指针
1.3 结构体指针
type Person struct {
name string
sex string
age int
}
func main() {
person1 := Person{"zhangsan","man",25} //创建一个person1对象
fmt.Printf("person1:%vn",person1)
demo(&person1)
fmt.Printf("person1:%vn",person1)
}
func demo(person *Person) {
(*person).age = 18 //**显示的解引用**
person.name = "GoLang" //**隐式的解引用**
}
2. 值类型,引用类型
2.1 值类型
值传递类型:布尔变量、数值类型、字符串类型、数组
值在传递给函数或者方法时会被复制一份,然后方法或函数使用的是复制的这份值,也就不会对原值产生什么影响。
2.2 引用类型
引用类型:映射(map),数组切片(slice),通道(channel),方法与函数。
2.3 golang字符串
golang字符串除了函数传递是值拷贝以外,字符串修改操作,也是值拷贝出来的,所以golang字符串有个特点,初始化后永不可变。
最后
以上就是殷勤哑铃为你收集整理的【golang - 关键词】指针、引用、new、&的全部内容,希望文章能够帮你解决【golang - 关键词】指针、引用、new、&所遇到的程序开发问题。
如果觉得靠谱客网站的内容还不错,欢迎将靠谱客网站推荐给程序员好友。
本图文内容来源于网友提供,作为学习参考使用,或来自网络收集整理,版权属于原作者所有。
发表评论 取消回复