java与golang语法比较(一)
package main
import (
"fmt"
"math"
)
type Rectangle struct { // 矩形
width float64
height float64
}
type Circle struct { // 圆形
radius float64
}
type Areable interface{ // 接口:一组method签名的组合,通过interface来定义对象的一组行为。
// 只要是实现了interface中的所有的method的结构体,就可以认为是这个interface的实例,Duck typing
area() float64
}
func (r Rectangle) /* 函数的接受者Receiver */ area() float64 /* 返回值类型*/ {
return r.width * r.height
}
func (c Circle) /* 函数的另一个接受者Receiver */ area() float64 /* 返回值类型*/{
return c.radius * c.radius * math.Pi
}
func main(){
ra := Rectangle{5,5}
ca := Circle{2.5}
fmt.Println(ra.area())
fmt.Println(ca.area())
}