go语言同C/C++一样,可以在不同的类型间使用类型强制转换。
基本用法:
1 | type A int32 |
上述代码,将类型为A的值a强制转换为类型为B的值b。但是这有一个前提条件:即A和B的底层类型一样。所谓的底层类型就是在声明A和B类型的时候,所指代的原始类型。两者都是int32,所以一样,故可以转换。如果底层类型不一样,则编译会报错。
读者不妨试试下面的例子:
1 | package main |
输出:
meter: 100
centimeter: 100
如果将centimeter的value类型变为int32,编译程序会报错
src\base\type_usage.go:21:11: cannot convert cm (type Centimeter) to type Meter
src\base\type_usage.go:24:17: cannot convert m (type Meter) to type Centimeter