@@ -66,7 +66,7 @@ error main.go:11: const initializer math.Sqrt(4) is not a constant.
66
66
const hello = " Hello World"
67
67
```
68
68
69
- 上面的代码将 "Hello World" 赋给一个名为 hello 的常量。那么现在常量** hello** 是不是就有了类型?答案是:No。hello 仍然没有类型。
69
+ 上面的代码将 "Hello World" 赋给一个名为 ` hello ` 的常量。那么现在常量 ` hello ` 是不是就有了类型?答案是:No。` hello ` 仍然没有类型。
70
70
71
71
Go是一种强类型语言。 所有变量都需要显式类型。 变量 ` name ` 被赋值为一个无类型的常量 ` "Sam" ` ,它是如何工作的呢?
72
72
@@ -84,7 +84,7 @@ func main() {
84
84
}
85
85
```
86
86
87
- 答案是无类型常量有一个默认的类型,当且仅当代码中需要无类型常量提供类型时,它才会提供该默认类型。在语句 ` var name = "Sam" ` 中,` name ` 需要一个类型,因此它从常量 "Sam" 中获取其默认类型:` string ` 。
87
+ 答案是无类型常量有一个默认的类型,当且仅当代码中需要无类型常量提供类型时,它才会提供该默认类型。在语句 ` var name = "Sam" ` 中,` name ` 需要一个类型,因此它从常量 ` "Sam" ` 中获取其默认类型:` string ` 。
88
88
89
89
<u >(译者注:这里可以理解为常量是无类型的,但是在需要类型的场合,编译器会根据常量的值和上下文将常量转换为相应的类型。)</u >
90
90
@@ -116,7 +116,9 @@ func main() {
116
116
117
117
接着我们创建了一个名为 ` customName ` 的 ` myString ` 类型的变量,并将常量 ` "Sam" ` 赋给它。因为常量 ` "Sam" ` 是无类型的所以可以将它赋值给任何字符串变量。因此这个赋值是合法的,` customName ` 的类型是 ` myString ` 。
118
118
119
- 现在我们有两个变量:string 类型的 ` defaultName ` 和 ` myString ` 类型的 ` customName ` 。尽管我们知道 ` myString ` 是 string 的一个别名,但是Go的强类型机制不允许将一个类型的变量赋值给另一个类型的变量。<u >** 因此,customName = defaultName 这个赋值是不允许的,编译器会报错:main.go:10: cannot use defaultName (type string) as type myString in assignment ** </u >
119
+ 现在我们有两个变量:string 类型的 ` defaultName ` 和 ` myString ` 类型的 ` customName ` 。尽管我们知道 ` myString ` 是 string 的一个别名,但是Go的强类型机制不允许将一个类型的变量赋值给另一个类型的变量。
120
+
121
+ <u >因此,customName = defaultName 这个赋值是不允许的,编译器会报错:main.go:10: cannot use defaultName (type string) as type myString in assignment </u >
120
122
121
123
## 布尔常量
122
124
@@ -180,7 +182,7 @@ func main() {
180
182
181
183
在上面的程序中,所有变量的类型都是由数值常量决定的。在语法上看,` 5 ` 在是一个整数,` 5.6 ` 是一个浮点数,` 5 + 6i ` 是一个复数。运行上面的程序,输出为:` i's type int, f's type float64, c's type complex128 `
182
184
183
- <u >(译者注:编译器可以根据字面值常量的表现形式来确定它的默认类型,比如 5.6 表现为浮点数,因此它的默认类型为 float64 ,而 "Sam" 表现为字符串,因此它的默认类型为 stirng 。)</u >
185
+ <u >(译者注:编译器可以根据字面值常量的表现形式来确定它的默认类型,比如 5.6 表现为浮点数,因此它的默认类型为 float64 ,而 "Sam" 表现为字符串,因此它的默认类型为 string 。)</u >
184
186
185
187
现在应该很清楚下面的程序是如何工作的了:
186
188
0 commit comments