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

【Rust每周一库】generic-array-长度为范型的静态数组

今天是2021年的第一天,大家新的一年也要好好学习Rust呀~

在很多其他语言中,静态数组虽然是静态的,但是我们却可以“给它在运行时中指定一个动态的长度”。但在Rust中由于数组中的N并不是范型,所以我们无法写出如下的代码:

structFoo {

data: [i32; N]

}

今天我们介绍的generic-array库定义了trait 和结构体,这样我们就可以写出刚才我们想要的等价结构体了:

structFoo {

data: GenericArray

}

其中对于库(一个范型的数值系统)中的无符号数,有默认的实现,因此如果我们可以这样定义一个长度为5的数组

usegeneric_array::typenum::U5;

structFoo {

data: GenericArray

}

fnmain() {

letfoo = Foo::;

}

而基本上就和差不多

usegeneric_array::typenum::U5;

structFoo {

data: GenericArray

}

fnmain() {

letfoo = Foo::;

}

如此一来我们就可以绕开Rust本身的限制,对静态数组的长度使用范型,让它动起来~不过其实Rust 2021发行版本据说就要原生支持这一功能了,大家也可以多多关注。结合本次介绍的的源代码跟一下这个事情~祝大家元旦快乐~

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

扫码

添加站长 进交流群

领取专属 10元无门槛券

私享最新 技术干货

扫码加入开发者社群
领券