首页
学习
活动
专区
工具
TVP
发布
精选内容/技术社群/优惠产品,尽在小程序
立即前往

学习Rust设计模式13:公共结构体和枚举类型的可扩展性

1、描述

在某些情况下,库作者可能想在不破坏向后兼容的情况下,为公共结构体添加公共字段或为公共枚举添加新的变体。在Rust中可以使用#[non_exhaustive] 和添加私有字段的方式来达成。

2、示例:

在当前的crate student中,有如下公共结构体:

但是我们未来会为StudentInfo添加公共字段。

使用non_exhaustive

示例代码:

在同一crate中使用该结构体和没加non_exhaustive一样,但是在外部crate使用该结构体时,如下:

因此此时创建StudentInfo需要提供创建函数进行。但是可以如下使用:

添加一个私有字段

除了上面的方式,还有一种就是添加私有字段,不允许外部crate直接创建,示例如下:

  • 发表于:
  • 原文链接https://kuaibao.qq.com/s/20230309A08ODA00?refer=cp_1026
  • 腾讯「腾讯云开发者社区」是腾讯内容开放平台帐号(企鹅号)传播渠道之一,根据《腾讯内容开放平台服务协议》转载发布内容。
  • 如有侵权,请联系 cloudcommunity@tencent.com 删除。

扫码

添加站长 进交流群

领取专属 10元无门槛券

私享最新 技术干货

扫码加入开发者社群
领券