LINUX.ORG.RU

История изменений

Исправление Silerus, (текущая версия) :

Это не важно, язык запрещает работать с тем чего нет. Но вот вам вариант с указателем

use std::cell::RefCell;



fn main() {
    // это во время компиляции проверяется
    let mut arr = Box::new([' ';100]);
    //let mut  arr:Box<['';100]>; - так работать не будет
    arr[99]='b';
    println!("{:?}",arr);
    // это рантайм
    let mut arr = RefCell::new([' ';100]);
    //let mut arr: RefCell<[char;100]>; так не скомпилируется
    arr.get_mut()[99]='b';
    println!("{:?}",arr);
   
}

Исходная версия Silerus, :

Это не важно, язык запрещает работать с тем чего нет. Но вот вам вариант с указателем

use std::cell::RefCell;



fn main() {
    // это во время компиляции проверяется
    let mut arr = Box::new([' ';100]);
    //let mut  arr:Box<['';100]>; - так работать не будет
    arr[99]='b';
    println!("{:?}",arr);
    // это рантайм
    let mut arr = RefCell::new([' ';100]);
    // let mut arr: RefCell<[char;100]>; так не скомпилируется
    arr[99]='b';
    println!("{:?}",arr);
}