This commit is contained in:
Akagi201 2016-04-04 20:26:08 +08:00
parent 35b3e2ef68
commit 3bbc20169e
2 changed files with 3 additions and 3 deletions

View File

@ -67,11 +67,11 @@ fmt.Println(c == f) // compile error: type mismatch
fmt.Println(c == Celsius(f)) // "true"! fmt.Println(c == Celsius(f)) // "true"!
``` ```
注意最后那个语句。尽管看起来函数调用但是Celsius(f)是类型转换操作它并不会改变值仅仅是改变值的类型而已。测试为真的原因是因为c和g都是零值。 注意最后那个语句。尽管看起来函数调用但是Celsius(f)是类型转换操作它并不会改变值仅仅是改变值的类型而已。测试为真的原因是因为c和g都是零值。
一个命名的类型可以提供书写方便特别是可以避免一遍又一遍地书写复杂类型译注例如用匿名的结构体定义变量。虽然对于像float64这种简单的底层类型没有简洁很多但是如果是复杂的类型将会简洁很多特别是我们即将讨论的结构体类型。 一个命名的类型可以提供书写方便特别是可以避免一遍又一遍地书写复杂类型译注例如用匿名的结构体定义变量。虽然对于像float64这种简单的底层类型没有简洁很多但是如果是复杂的类型将会简洁很多特别是我们即将讨论的结构体类型。
命名类型还可以为该类型的值定义新的行为。这些行为表示为一组关联到该类型的函数集合,我们称为类型的方法集。我们将在第六章中讨论方法的细节,这里说写简单用法。 命名类型还可以为该类型的值定义新的行为。这些行为表示为一组关联到该类型的函数集合,我们称为类型的方法集。我们将在第六章中讨论方法的细节,这里说写简单用法。
下面的声明语句Celsius类型的参数c出现在了函数名的前面表示声明的是Celsius类型的一个叫名叫String的方法该方法返回该类型对象c带着°C温度单位的字符串 下面的声明语句Celsius类型的参数c出现在了函数名的前面表示声明的是Celsius类型的一个叫名叫String的方法该方法返回该类型对象c带着°C温度单位的字符串

View File

@ -12,7 +12,7 @@ Go语言中的包和其他语言的库或模块的概念类似目的都是为
我们把变量的声明、对应的常量还有方法都放到tempconv.go源文件中 我们把变量的声明、对应的常量还有方法都放到tempconv.go源文件中
<u></i>gopl.io/ch2/tempconv</i></u> <u><i>gopl.io/ch2/tempconv</i></u>
```Go ```Go
// Package tempconv performs Celsius and Fahrenheit conversions. // Package tempconv performs Celsius and Fahrenheit conversions.
package tempconv package tempconv