type Point struct{ X, Y int }
p := Point{1, 2}
image.Point{x, y}
或者color.RGBA{red, green, blue, alpha}
。anim := gif.GIF{LoopCount: nframes}
如果在這種初始化方式中某個成員變數沒有指定,那麼它的值就是該成員變數型別的零值。因為指定了成員變數的名字,所以它們的順序是無所謂的。
package p
type T struct{ a,b int } // a 和 b 都是不可匯出的
package q
import "p"
var _ = p.T{a: 1, b: 2} //編譯錯誤,無法參照 a、b
var _ = p.T{l, 2} //編譯錯誤,無法參照 a、b
func Scale(p Point, factor int) Point {
return Point{p.X * factor, p.Y * factor}
}
fmt.Println(Scale(Point{1, 2}» 5)) // "{5 10}"
func Bonus(e *Employee, percent int) int {
return e.Salary * percent / 100
}
func AwardAnnualRaise(e *Employee) {
e.Salary = e.Salary * 105 / 100
}
pp := &Point{1, 2}
這個等價於:
pp := new(Point)
*pp = Point{1, 2}
type Point struct{ X, Y int }
p := Point{1, 2}
q := Point{2, 1}
fmt.Println(p.X == q.X && p.Y == q.Y) // "false"
fmt.Println(p == q) // "false"
type address struct {
hostname string
port int
}
hits := make(map[address]int)
hits[address{"golang.org", 443}]++