类型别名(type alias)
可以在某一个类型的基础上定义类型别名,使用上完全一样
基于基本类型
1. type Myint = int
3. type Myf32 = f32
5. type Myf64 = f64
7. fn main() {
8. i := Myint(10)
9. println(i + 100 == 110)
10. f := Myf64(1.0)
11. println(f + 3.14 == 4.14)
12. }
基于结构体类型
1. module main
3. struct Human {
4. name string
5. }
7. pub fn (h Human) str() string {
8. return 'Human: $h.name'
9. }
11. type Person = Human
13. pub fn (h Person) str() string {
14. return 'Person: $h.name'
15. }
17. fn main() {
18. p := Person{'Bilbo'}
19. p2 := Human{'jack'}
20. println(p)
21. println(p2)
22. }
类型别名方法
可以像结构体那样,给类型别名添加方法
1. module main
3. fn main() {
4. i := Myint(11)
5. println(i.str())
6. }
8. type Myint = int
10. pub fn (m Myint) str() string { // 类型别名的方法
11. return 'from myint'
12. }
