struct Point {
x int
y int
}
p := Point{
x: 10
y: 20
}
println(p.x) // Struct fields are accessed using a dot
结构在堆栈上分配。要在堆上分配结构并获取指向它的指针,请使用 &
前缀:
pointer := &Point{10, 10} // Alternative initialization syntax for structs with 3 fields or fewer
println(pointer.x) // Pointers have the same syntax for accessing fields
V没有子类,但它支持嵌入式结构:
在struct中嵌入一层struct
// TODO: this will be implemented later in July
struct Button {
Widget
title string
}
button := new_button('Click me')
button.set_pos(x, y)
// Without embedding we'd have to do
button.widget.set_pos(x,y)