指针引用内存中的位置。据我所知,实际上所有内存地址都具有相同的类型,而与变量类型无关。
而不是使用不同的指针类型(*int等*string),这是否可能只对所有指针类型使用一种类型(var p pointer)?
不同的指针类型有什么区别?
package main
import "fmt"
func main() {
i := 5
s := "abc"
var pi *int // alternatively var pi pointer
var ps *string // alternatively var ps pointer
pi = &i
ps = &s
fmt.Printf("%p %p", pi, ps) // result is 0x1040e0f8 0x1040a120
}考虑以下结构:
type Queue struct {
Elements []int
}
有什么不同:
func NewQueue() Queue {
queue := Queue{}
return queue
}
和
func NewQueue() *Queue {
queue := &Queue{}
return queue
}
对我来说,这看起来几乎是一样的,(实际上尝试使用一些入队和出队会产生相同的结果)但我仍然在野外看到这两种用法,所以也许一个更可取。
一只甜甜圈
相关分类