我是Go的新手,对结构很好奇。让我们定义一个结构select id, events from msql
where id < '05'
group by id
order by id desc
limit 1
T
我见过不同类型的struct初始化。有什么区别?
type T struct {
size int
}
以及两种方法声明:
new(T) // 1
T{size:1} // 2
&T{size:1} // 3
什么是正确的方法?
答案 0 :(得分:1)
new和&amp; T {size:1}返回* T
T {size:1}返回T
内置函数new采用类型T,在运行时为该类型的变量分配存储,并返回指向它的类型* T的值。变量初始化,如初始值部分所述。
2
任何其他命名类型T的方法集由接收器类型为T的所有方法组成。相应指针类型* T的方法集是带接收器* T或T的所有方法的集合(也就是说,它还包含T)的方法集。
var pt * T
var t T
func(r * T)area()int
你可以使用pt.area()或t.area()
func(r T)area()int
你可以使用t.area(),不能使用pt.area()
通常我们使用func(r * T)area()int