类型别名(type alias)

可以在某一个类型的基础上定义类型别名,使用上完全一样

基于基本类型

  1. type Myint = int
  2. type Myf32 = f32
  3. type Myf64 = f64
  4. fn main() {
  5. i := Myint(10)
  6. println(i + 100 == 110)
  7. f := Myf64(1.0)
  8. println(f + 3.14 == 4.14)
  9. }

基于结构体类型

  1. module main
  2. struct Human {
  3. name string
  4. }
  5. pub fn (h Human) str() string {
  6. return 'Human: $h.name'
  7. }
  8. type Person = Human
  9. pub fn (h Person) str() string {
  10. return 'Person: $h.name'
  11. }
  12. fn main() {
  13. p := Person{'Bilbo'}
  14. p2 := Human{'jack'}
  15. println(p)
  16. println(p2)
  17. }

类型别名方法

可以像结构体那样,给类型别名添加方法

  1. module main
  2. fn main() {
  3. i := Myint(11)
  4. println(i.str())
  5. }
  6. type Myint = int
  7. pub fn (m Myint) str() string { // 类型别名的方法
  8. return 'from myint'
  9. }