func test(args ...string) {
    var msg map[string] interface{}
    i := 0
    msg["product"] = args[i++]
    msg["key"] = args[i++]
    msg["signature"] = args[i++]
    msg["string_to_sign"] = args[i++]
  }
  go build utils.go
编译后,我收到错误信息
    ./utils.go:28: syntax error: unexpected ++, expecting :
    ./utils.go:28: missing statement after label
    ./utils.go:29: syntax error: unexpected ++, expecting :
    ./utils.go:30: syntax error: unexpected ++, expecting :
    ./utils.go:31: syntax error: unexpected ++, expecting :
    ./utils.go:36: syntax error: unexpected ++, expecting :
    ./utils.go:37: syntax error: unexpected ++, expecting :
为什么我不能把i ++放在切片索引中?切片指数有任何限制吗?
pet*_*rSO 41
为什么++和 - 语句而不是表达式?为什么postfix,不是前缀?
如果没有指针运算,前后增量运算符的便利值就会下降.通过从表达层次共,表达式语法被简化并且围绕++和评价的顺序删除它们的杂乱的问题 - (考虑F(1 ++)和p [I] = Q [++ I])被消除,以及.简化很重要.至于后缀与前缀,要么工作正常,但后缀版本更传统; 坚持使用STL,这是一个语言库,其名称包含一个后缀增量.
"++"和" - "语句通过无类型常量1递增或递减其操作数.与赋值一样,操作数必须是可寻址的或映射索引表达式.
Run Code Online (Sandbox Code Playgroud)IncDecStmt = Expression ( "++" | "--" ) .以下赋值语句在语义上等效:
Run Code Online (Sandbox Code Playgroud)IncDec statement Assignment x++ x += 1 x-- x -= 1
写,
func test(args ...string) {
    var msg map[string]interface{}
    i := 0
    msg["product"] = args[i]
    i++
    msg["key"] = args[i]
    i++
    msg["signature"] = args[i]
    i++
    msg["string_to_sign"] = args[i]
}
在您的特定情况下,简化为,
func test(args ...string) {
    var msg map[string]interface{}
    msg["product"] = args[0]
    msg["key"] = args[1]
    msg["signature"] = args[2]
    msg["string_to_sign"] = args[3]
}
And*_*ewN 12
正如其他人所说的那样i++是一个go中的语句,而不是C中的表达式.Go有一种不同的方式来表达使用多个赋值的相同意图:
func test(args ...string) {
    msg := make(map[string]string)
    i := 0
    msg["product"], i = args[i], i+1
    msg["key"], i = args[i], i+1
    msg["signature"], i = args[i], i+1
    msg["string_to_sign"], i = args[i], i+1
    fmt.Printf("%v\n", msg)
}
你的定义map也会在运行时失败.
++运营商令人失望。这是我的黑客:
func test(args ...string) {
    i := 0
    inc := func(i *int) int { *i++; return i }
    var msg map[string] interface{}
    msg["product"] = args[inc(&i)]
    msg["key"] = args[inc(&i)]
    msg["signature"] = args[inc(&i)]
    msg["string_to_sign"] = args[inc(&i)]
  }
| 归档时间: | 
 | 
| 查看次数: | 53144 次 | 
| 最近记录: |