gpt4 book ai didi

rust - Rust 是否有用于创建带有附加元素的数组的语法糖?

转载 作者:行者123 更新时间:2023-11-29 08:06:03 24 4
gpt4 key购买 nike

我有一个 3 元素数组:

let color = [0.25, 0.25, 0.25];

我想将它变成一个 4 元素数组,即 3 元素数组加上一个附加元素:

let color_with_alpha = [color[0], color[1], color[2], 1.0];

我知道 Rust 有很多很酷的语法糖;有什么东西吗?像这样的东西:

let color_with_alpha = [color, 1.0];

我读过 concat macro但这似乎只会创建字符串切片。我想有一个基于矢量的解决方案,但我不需要动态调整大小。

最佳答案

不,没有这样的语法。

总是很难证明是否定的,但我已经实现了 parser of Rust code我已经使用 Rust 超过 3 年;我从来没有遇到过任何这样的语法。


我能想到的最接近的是为各种大小的数组实现一个特征。这很复杂,因为您不能移出非 Copy 数组。由于没有通用整数,您必须为所需的每种大小的数组实现此特征。

trait ArrayAppend<T> {
type Output;
fn append(self, val: T) -> Self::Output;
}

impl<T: Copy> ArrayAppend<T> for [T; 3] {
type Output = [T; 4];

fn append(self, val: T) -> Self::Output {
[self[0], self[1], self[2], val]
}
}

fn main() {
let color = [0.25, 0.25, 0.25];
let color2 = color.append(1.0);
}

关于rust - Rust 是否有用于创建带有附加元素的数组的语法糖?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/49331975/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com