Rust的枚举还实现了C语言的联合(union)的特性

Rust的枚举特性还实现了C语言的联合的特性,这在一些情况下,可以简化代码。

下面这段Rust定义枚举的代码:

enum Message {
    Quit,
    Move { x: i32, y: i32 },
    Write(String),
    ChangeColor(i32, i32, i32),
}

参考:Enum Values

在C语言中相当于以下代码:

typedef enum
{
	Quit,
	Move,
	Write,
	ChangeColor
}MessageType;

typedef struct
{
	MessageType type;
	union {
		struct move {
			int32_t x;
			int32_t y;
		};
		String write_string;
		int32_t color[3];
	}
}Message;

显然,Rust的代码要简练地多。在事件驱动编程中,不同的事件关联不同的数据是很普遍的,Rust枚举的这个特性,可以简化事件驱动编程。

©️2020 CSDN 皮肤主题: 技术工厂 设计师: CSDN官方博客 返回首页
实付0元
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、C币套餐、付费专栏及课程。

余额充值