Rust中遍历空Vec时能否省略.is_empty()检查?
问题解答
完全可以省略.is_empty()检查,直接使用第二段代码。
在Rust中,当你用for循环遍历一个空集合(比如示例里的空Vec)时,循环体根本不会执行,这和你先判断!players.is_empty()再执行循环的效果完全一致。
直接写for player in players不仅更简洁,也是Rust里的惯用写法,多一层is_empty()判断属于冗余代码。而且这种写法兼容性更好——哪怕之后你把players换成其他可遍历的空集合(比如HashSet),逻辑依然能正常工作。
对比两段代码:
原代码:
let players = vec![]; if !players.is_empty() { for player in players { // use player here } }
简化后的推荐代码:
let players = vec![]; for player in players { // use player here }
内容的提问来源于stack exchange,提问作者Fred Hors
相关产品推荐
相关产品推荐

