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嗷~
【推荐】国内首个AI IDE,深度理解中文开发场景,立即下载体验Trae
【推荐】编程新体验,更懂你的AI,立即体验豆包MarsCode编程助手
【推荐】抖音旗下AI助手豆包,你的智能百科全书,全免费不限次数
【推荐】轻量又高性能的 SSH 工具 IShell:AI 加持,快人一步
· 阿里最新开源QwQ-32B,效果媲美deepseek-r1满血版,部署成本又又又降低了!
· 开源Multi-agent AI智能体框架aevatar.ai,欢迎大家贡献代码
· Manus重磅发布:全球首款通用AI代理技术深度解析与实战指南
· 被坑几百块钱后,我竟然真的恢复了删除的微信聊天记录!
· AI技术革命,工作效率10个最佳AI工具