github.com/neugram/ng@v0.0.0-20180309130942-d472ff93d872/eval/testdata/vec.ng (about) 1 // This package exports symbols and is used by ./import3.ng. 2 3 type Vector3 struct { 4 X float64 5 Y float64 6 Z float64 7 // TODO: X, Y, Z float64 8 } 9 10 one := float64(1) 11 One := Vector3{X: one, Y: 1.0, Z: 1} 12 Zero := Vector3{} 13 14 func Add(m, n Vector3) Vector3 { 15 return Vector3{m.X + n.X, m.Y + n.Y, m.Z + n.Z} 16 } 17 18 func Sub(m, n Vector3) Vector3 { 19 m2 := &m 20 y := m2.Y 21 y -= n.Y 22 return Vector3{m.X - n.X, y, m.Z - n.Z} 23 } 24 25 func Dot(m, n Vector3) float64 { 26 return m.X*n.X + m.Y*n.Y + m.Z*n.Z 27 } 28 29 OK := true 30 if got := Sub(One, One); got != Zero { 31 OK = false 32 printf("Sub(One, One)=%v, want Zero", got) 33 } 34 35 X := "initx" 36 37 func PassThrough(s string) string { return X + s } 38 39 if OK { 40 print("OK") 41 }