变量分为普通变量和指针变量;普通变量存放的是数据本身,而指针变量存放的是数据的地址。
使用表达式 new(Type) 将创建一个Type类型的匿名变量,初始化为Type类型的零值,然后返回变量地址,返回的指针类型为*Type
package main
import "fmt"
func main() {
var age int = 28
var ptr = &age // &后面接变量名,表示取出该变量的内存地址
fmt.Println("age: ", age)
fmt.Println("ptr: ", ptr)
//使用new函数声明一个指针变量
ptr1 := new(int)
//ptr := new(string)
//ptr := new(bool)
fmt.Println("ptr1 address: ", ptr1)
fmt.Println("ptr1 value: ", *ptr1) // * 后面接指针变量,表示从内存地址中取出值
//对比new与传统方式创建变量的区别
fmt.Println(aaa1,aaa2)
}
// 使用 new
func aaa1() *bool {
return new(bool)
}
// 使用传统的方式
func aaa2() *int {
var kkk int
return &kkk
}