RUST——slice类型
一个编程练习
要求:编写一个函数,该函数接收一个用空格分隔单词的字符串,并返回在该字符串中找到的第一个单词。如果函数在该字符串中并未找到空格,则整个字符串就是一个单词,所以应该返回整个字符串。
//slice使用示意
fn main() {
let s=String::from("Today I want to go out for lunch");
println!("{s}");
let first_index=first_word(&s);
let word=&s[0..first_index];
println!("{word}!");
}
fn first_word(s:&String)->usize{
let bytes=s.as_bytes();
for(i,&item) in bytes.iter().enumerate(){
if item == b' '{
return i
}
}
s.len()
}
也可以巧妙地把slice
融合进函数本身:
fn main() {
let s=String::from("Today I want to go out for lunch");
let word=get_first_word(&s);
println!("the first word :{word}!");
}
fn get_first_word(s:&String)->&str{
let bytes=s.as_bytes();
for(i,&item) in bytes.iter().enumerate(){
if item ==b' '{
return &s[0..i];
}
}
&s[0..]
}
本文来自博客园,作者:理想国的糕,转载请注明原文链接:https://www.cnblogs.com/SaltyCheese/p/17309219.html嗷~