类型别名(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. }