Browse Source

08-11 golang101 变量类型转换

fengchun_yuan 2 years ago
parent
commit
71f38a7ee1
2 changed files with 38 additions and 0 deletions
  1. 37 0
      Go语言101/入门.md
  2. 1 0
      go圣经/gopl-zh.github.com

+ 37 - 0
Go语言101/入门.md

@@ -238,7 +238,44 @@ _69 // 下划线不能出现在首尾
 
 ## 类型不确定厂里的显示类型转换
 
+### 一些合法的转换
+
+```json
+
+// 结果为complex128类型的1.0+0.0i。虚部被舍入了。
+complex128(1 + -1e-1000i)
+// 结果为float32类型的0.5。这里也舍入了。
+float32(0.49999999)
+// 只要目标类型不是整数类型,舍入都是允许的。
+float32(17000000000000000)
+float32(123)
+uint(1.0)
+int8(-123)
+int16(6+0i)
+complex128(789)
+string(65) // "A"
+string('A') // "A"
+string('\u68ee') // "森"
+string(-1) // "\uFFFD"
+string(0xFFFD) // "\uFFFD"
+string(0x2FFFFFFFF) // "\uFFFD"
+```
 
+### 一些非法的转换
+
+```json
+int(1.23) // 1.23不能被表示为int类型值。
+uint8(-1) // -1不能被表示为uint8类型值。
+float64(1+2i) // 1+2i不能被表示为float64类型值。
+// -1e+1000不能被表示为float64类型值。不允许溢出。
+float64(-1e1000)
+// 0x10000000000000000做为int值将溢出。
+int(0x10000000000000000)
+// 字面量65.0的默认类型是float64(不是一个整数类型)。
+string(65.0)
+// 66+0i的默认类型是complex128(不是一个整数类型)。
+string(66+0i)
+```
 
 
 

+ 1 - 0
go圣经/gopl-zh.github.com

@@ -0,0 +1 @@
+Subproject commit afd477b5416134994d0ccc7dc6c5c3162725be72