联合体
跟C的联合体类型用法完全一致,联合体的定义方式跟结构体是一样的,
只是把关键字struct改为union,不过在V语言中比较少用到.
联合体定义
1. union MyAnything {
2. mut:
3. bytes [10]byte
4. xu64 u64
5. xu32 u32
6. xu16 u16
7. xint int
8. }
10. fn main() {
11. mut x := MyAnything{}
12. x.xint = 1234
13. for i, b in x.bytes {
14. println('x.bytes[$i]: $b.hex()')
15. }
16. }
联合体方法
可以像结构体那样,给联合体添加方法
1. union MyAnything {
2. mut:
3. bytes [10]byte
4. xu64 u64
5. xu32 u32
6. xu16 u16
7. xint int
8. }
10. pub fn (m MyAnything) str() string {
11. return 'from union'
12. }
14. fn main() {
15. mut x := MyAnything{}
16. x.xint = 1234
17. println(x.str())
18. }
