golang: 类型转换和类型断言
类型转换在程序设计中都是不可避免的问题。当然有一些语言将这个过程给模糊了,大多数时候开发者并不需要去关注这方面的问题。但是golang中的类型匹配是很严格的,不同的类型之间通常需要手动转换,编译器不会代你去做这个事。我之所以说通常需要手动转换,是因为interface类型作为一个特例,会有不同的处理方式。
golang Comma-ok switch测试 类型转换 类型断言
类型转换在程序设计中都是不可避免的问题。当然有一些语言将这个过程给模糊了,大多数时候开发者并不需要去关注这方面的问题。但是golang中的类型匹配是很严格的,不同的类型之间通常需要手动转换,编译器不会代你去做这个事。我之所以说通常需要手动转换,是因为interface类型作为一个特例,会有不同的处理方式。
golang中的所有类型都有自己的默认值,对此我做了个测试。
$GOPATH/src
----typeassert_test
--------main.go
main.go的代码如下:
01 |
package main |
02 |
03 |
import ( |
04 |
"fmt" |
05 |
) |
06 |
07 |
type myStruct struct { |
08 |
name bool |
09 |
userid int64 |
10 |
} |
11 |
12 |
var structZero myStruct |
13 |
var intZero int |
14 |
var int32Zero int32 |
15 |
var int64Zero int64 |
16 |
var uintZero uint |
17 |
|