You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

如何在Rust中单行完成二维数组的定义与赋值

固定大小栈上二维数组(对应C# int[,] 语义)

直接用嵌套数组字面量初始化即可,语法和C#非常接近:

let a: [[i32;4];4] = [
    [0, 10, 35, 30],
    [10, 0, 30, 15],
    [35, 30, 5, 30],
    [30, 15, 30, 0]
];

这种数组的大小在编译期确定,存储在栈上,性能更高,适合尺寸固定的场景。如果需要修改元素,添加mut关键字即可:let mut a = [[...]; ...];

堆上动态二维Vec(对应你示例中原有Vec<Vec<i32>>类型)

用嵌套的vec!宏直接初始化所有元素,不需要先创建全0数组再逐个赋值:

let a: Vec<Vec<i32>> = vec![
    vec![0, 10, 35, 30],
    vec![10, 0, 30, 15],
    vec![35, 30, 5, 30],
    vec![30, 15, 30, 0]
];

如果要压缩为完全的单行写法,去掉换行即可:

let a = vec![vec![0,10,35,30],vec![10,0,30,15],vec![35,30,5,30],vec![30,15,30,0]];

注意事项

  • Rust 不允许十进制数字字面量添加前导0,你原有代码中的00、05需要改为0、5,否则会触发编译错误。
  • 两种初始化方式都支持后续修改元素,只需在声明时添加mut关键字即可,和你原有写法的修改逻辑完全一致。

内容的提问来源于stack exchange,提问作者Alexandra Danith Ansley

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.10.07 12:54:04