首页
学习
活动
专区
圈层
工具
发布
首页
学习
活动
专区
圈层
工具
MCP广场
社区首页 >问答首页 >如何在for循环中指定循环变量的类型?

如何在for循环中指定循环变量的类型?
EN

Stack Overflow用户
提问于 2022-02-14 13:16:38
回答 2查看 564关注 0票数 6

我想在这个for循环中指定i的类型。Visual告诉我i32中的类型,但数字并不大,所以我想将它更改为u8

代码语言:javascript
运行
复制
for i in 0..101 {
    println!("{}", i);
}

我试过这个:

代码语言:javascript
运行
复制
for i: u8 in 0..101 {
    println!("{}", i);
}

但是,我得到了以下错误:

代码语言:javascript
运行
复制
error: expected one of `@` or `|`, found `:`
 --> src/main.rs:2:10
  |
2 |     for i: u8 in 0..101 {
  |          ^
  |          |
  |          expected one of `@` or `|`
  |          help: maybe write a path separator here: `::`

指定类型的正确方法是什么?

EN

回答 2

Stack Overflow用户

回答已采纳

发布于 2022-02-14 13:32:49

在for-循环中不可能有类型注释,因为for-循环需要一个模式,而且模式不能包含类型注释。有关更多详细信息,请参阅锈蚀参考文献

相反,你可以做三件事中的一件:

使迭代器的类型明确

在这种情况下,将是:

代码语言:javascript
运行
复制
for i in 0..101u8 {
    println!("{}", i);
}

(游乐场)

在@-模式中使用不可辩驳的模式

代码语言:javascript
运行
复制
for i @ 0..=255u8 in 0..101 {
    println!("{}", i);
}

(游乐场)

在循环中添加一个类型注释:

代码语言:javascript
运行
复制
for i in 0..101 {
    let i: u8 = i;
    println!("{}", i);
}

(游乐场)

票数 10
EN

Stack Overflow用户

发布于 2022-02-14 13:25:50

可以通过添加下划线和数据类型显式地选择任何数字的类型。

代码语言:javascript
运行
复制
fn main() {
    for i in 0..101_u8 {
        println!("{}", i);
    }
}
票数 2
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/71112530

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档