package main
import ("fmt"; "math")
func distance(x1, y1, x2, y2 float64) float64 {
a := x2 – x1
b := y2 – y1
return math.Sqrt(a*a + b*b)
}
func rectangleArea(x1, y1, x2, y2 float64) float64 {
l := distance(x1, y1, x1, y2)
w := distance(x1, y1, x2, y1)
return l * w
}
func circleArea(x, y, r float64) float64 {
return math.Pi * r*r
}
func main() {
var rx1, ry1 float64 = 0, 0
var rx2, ry2 float64 = 10, 10
var cx, cy, cr float64 = 0, 0, 5
fmt.Println(rectangleArea(rx1, ry1, rx2, ry2))
fmt.Println(circleArea(cx, cy, cr))
}
type Circle struct {
x float64
y float64
r float64
}
or
type Circle struct {
x, y, r float64
}
var c Circle
다른 데이터 타입과 같이 기본값이 0인 Circle이라는 지역변수를 만들 수 있다. struct에서 zero의 의미는 각각의 필드에 해당되는 zero 값이라는 의미다. (정수는 0, 실수는 0.0, 문자열은 "", 포인터는 nil)
new를 사용해서 만들 수도 있다
c := new(Circle)