From 35b39b662dd04cfa8a6ac1e45c9ce2d52831119d Mon Sep 17 00:00:00 2001 From: custa Date: Mon, 15 Aug 2016 10:55:02 +0800 Subject: [PATCH 1/3] Update ch3-06-2.md --- ch3/ch3-06-2.md | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/ch3/ch3-06-2.md b/ch3/ch3-06-2.md index 2034f25..217cf78 100644 --- a/ch3/ch3-06-2.md +++ b/ch3/ch3-06-2.md @@ -37,7 +37,7 @@ fmt.Println(5 / 9 * (f - 32)) // "0"; 5/9 is an untyped integer, 0 fmt.Println(5.0 / 9.0 * (f - 32)) // "100"; 5.0/9.0 is an untyped float ``` -只有常量可以是无类型的。当一个无类型的常量被赋值给一个变量的时候,就像上面的第一行语句,或者是像其余三个语句中右边表达式中含有明确类型的值,无类型的常量将会被隐式转换为对应的类型,如果转换合法的话。 +只有常量可以是无类型的。当一个无类型的常量被赋值给一个变量的时候,就像下面的第一行语句,或者出现在有明确类型的变量声明的右边,如下面的其余三行语句,无类型的常量将会被隐式转换为对应的类型,如果转换合法的话。 ```Go var f float64 = 3 + 0i // untyped complex -> float64 From 6f5cf0f48996832124a3c483cf05001b14ade12e Mon Sep 17 00:00:00 2001 From: custa Date: Mon, 15 Aug 2016 11:27:54 +0800 Subject: [PATCH 2/3] Update ch3-06-2.md --- ch3/ch3-06-2.md | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/ch3/ch3-06-2.md b/ch3/ch3-06-2.md index 217cf78..d37880a 100644 --- a/ch3/ch3-06-2.md +++ b/ch3/ch3-06-2.md @@ -69,7 +69,7 @@ const ( ) ``` -对于一个没有显式类型的变量声明语法(包括短变量声明语法),无类型的常量会被隐式转为默认的变量类型,就像下面的例子: +对于一个没有显式类型的变量声明(包括简短变量声明),常量的形式将隐式决定变量的默认类型,就像下面的例子: ```Go i := 0 // untyped integer; implicit int(0) From 581e599f5706e5ac7c0c3b9d55e94a75008f3338 Mon Sep 17 00:00:00 2001 From: custa Date: Mon, 15 Aug 2016 11:45:24 +0800 Subject: [PATCH 3/3] Update ch3-06-2.md --- ch3/ch3-06-2.md | 4 +++- 1 file changed, 3 insertions(+), 1 deletion(-) diff --git a/ch3/ch3-06-2.md b/ch3/ch3-06-2.md index d37880a..797fe36 100644 --- a/ch3/ch3-06-2.md +++ b/ch3/ch3-06-2.md @@ -78,7 +78,9 @@ f := 0.0 // untyped floating-point; implicit float64(0.0) c := 0i // untyped complex; implicit complex128(0i) ``` -注意默认类型是规则的:无类型的整数常量默认转换为int,对应不确定的内存大小,但是浮点数和复数常量则默认转换为float64和complex128。Go语言本身并没有不确定内存大小的浮点数和复数类型,而且如果不知道浮点数类型的话将很难写出正确的数值算法。 +注意有一点不同:无类型整数常量转换为int,它的内存大小是不确定的,但是无类型浮点数和复数常量则转换为内存大小明确的float64和complex128。 +如果不知道浮点数类型的内存大小是很难写出正确的数值算法的,因此Go语言不存在整型类似的不确定内存大小的浮点数和复数类型。 + 如果要给变量一个不同的类型,我们必须显式地将无类型的常量转化为所需的类型,或给声明的变量指定明确的类型,像下面例子这样: