go11 方法
声明新类型
关键字 type 可以用来声明新类型:
type celsius float64
var temperature celsius = 20
虽然 Celsius 是一种全新的类型,但是由于它和 float64 具有相同的行为和表示,所以赋值操作能顺利执行。
例如加法等运算,也可以像 float64 那样使用。
为什么要声明新类型:极大的提高代码可读性和可靠性。
不同的类型是无法混用的。
通过方法添加行为
在 C#、Java 里,方法属于类。
在 Go 里,它提供了方法,但是没提供类和对象。
Go 比其他语言的方法要灵活。
可以将方法与同包中声明的任何类型相关联,但不可以是 int、float64 等预声明的类型进行关联。
上例中,celsius 方法虽然没有参数。但它前面却又一个类型参数的接收者。
每个方法可以有多个参数,但只能有一个接收者。
在方法体中,接收者的行为和其它参数一样。
方法声明图解:
方法调用
变量 . 方法()