gpt4 book ai didi

go - 为什么范围内没有帖子?戈朗

转载 作者:数据小太阳 更新时间:2023-10-29 03:42:58 27 4
gpt4 key购买 nike

我想在每个范围循环后递增一个变量。但是,似乎无法使用标准(for init; condition; post {})语法,因此我想知道为什么。这是我正在尝试做的事情

    for item := range itemsList; page++ {

}

看来唯一的办法就是

        for item := range itemsList{

page++
}

这看起来不如第一个好。

最佳答案

for statement specification确实提到了Range Clause独立。

ForStmt = "for" [ Condition | ForClause | RangeClause ] Block .

相对于 Post Statement ,它是以下的一部分:

ForClause = [ InitStmt ] ";" [ Condition ] ";" [ PostStmt ] .

这意味着 post 语句仅在初始化和条件的上下文中有效,以便潜在地使该条件发生变化(因为它在每次执行 block 后执行,并且仅当 block 被执行时执行)。

在 Range 子句中没有这样的需要(使条件停止循环),其中循环已经在一个范围(数组、 slice 、字符串、映射或 channel )的所有元素上完成允许接收操作)足以让循环停止。

范围表达式在开始循环之前被评估一次(或者至少它的长度是)。每次执行 block 后无需更改任何内容。

因此尝试将 post 语句添加到范围循环会产生如下编译错误:

expected '{', found ';' 

关于go - 为什么范围内没有帖子?戈朗,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/23845320/

27 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com