什么[..]对Rust切片意味着什么呢? [重复]

问题描述 投票:0回答:1

我在自述文件中找到了这个例子:

use std::env;

fn main() {
    let filename: &str = &env::args().nth(1).unwrap()[..];
    let filename2: &str = &env::args().nth(1).unwrap();
    println!("{:?}", filename);
    println!("{:?}", filename2)
}

我对第一行感兴趣:let filename ...

[..]之后的unwrap是什么意思?

第二行let filename2 ...是我自己的测试,filenamefilename2是相同的,或者我错过了什么?

这个[..]叫什么?

string rust slice
1个回答
3
投票

字符串可以用作字节数组。这个添加完全没有:

#![feature(core_intrinsics)]

fn print_type_of<T>(_: &T) {
    println!("{}", unsafe { std::intrinsics::type_name::<T>() });
}

fn main() {
    let x = "abc";

    print_type_of(&x); // &str

    let x = &x[..];

    print_type_of(&x); // &str
}

[..]占据了全部范围,&参考了它。

© www.soinside.com 2019 - 2024. All rights reserved.