MST
星途 面试题库

面试题:Rust数组初始化的常见方法及适用场景

请列举至少三种Rust数组初始化的方法,并简要说明每种方法在什么场景下使用更为合适。
47.7万 热度难度
编程语言Rust

知识考点

AI 面试

面试题答案

一键面试
  1. 直接初始化
    • 示例let arr = [1, 2, 3];
    • 适用场景:当数组元素数量较少且已知,在编译时就明确数组内容的场景。例如,定义一个包含星期几缩写的数组 let weekdays = ["Mon", "Tue", "Wed", "Thu", "Fri", "Sat", "Sun"];,这种方式简单直观,能快速定义固定内容的小数组。
  2. 使用 [T; n] 语法初始化相同值的数组
    • 示例let arr = [0; 5];,这里创建了一个包含5个0的数组。
    • 适用场景:当需要创建一个包含大量相同值的数组时非常有用。比如初始化一个用于缓存的数组,初始值都设为0 ,let buffer = [0u8; 1024];,表示创建一个长度为1024的字节数组,初始值全为0。
  3. 通过迭代器初始化
    • 示例
      let arr: [i32; 5] = (0..5).collect::<Vec<i32>>().try_into().unwrap();
      
    • 适用场景:当数组元素的值需要通过某种计算或迭代生成时适用。例如生成一个包含从1到10的平方的数组,可以使用迭代器生成平方值再转换为数组。它提供了灵活性,可以基于各种逻辑生成数组元素。