|
@@ -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)
|
|
|
+```
|
|
|
|
|
|
|
|
|
|