当前位置: 首页 > 面试题库 >

Go golang,语法错误:意外++,期望:

李文轩
2023-03-14
问题内容
  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 ++放在切片索引中?切片索引有什么限制吗?


问题答案:

前往常见问题解答(FAQ)

为什么++和-语句而不是表达式?为什么使用后缀而不是前缀?

如果不使用指针算法,则前缀和后缀增量运算符的便利性值会下降。通过将它们从表达式层次结构中完全删除,可以简化表达式语法,并且可以消除围绕 和-(考虑f(i

)和p [i] = q [++ i])的求值的混乱问题。
。简化意义重大。至于后缀和前缀,两者都可以正常工作,但后缀版本更传统。带有STL的语言引起了对前缀的坚持,具有讽刺意味的是,该语言的名称包含后缀增量。

Go编程语言规范

IncDec语句

“ ++”和“-”语句将它们的操作数增加或减少无类型常量1。与赋值一样,该操作数必须是可寻址的或映射索引表达式。

IncDecStmt = Expression ( "++" | "--" ) .

以下赋值语句在语义上是等效的:

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]
}


 类似资料:
  • 有人能告诉我我做错了什么吗? 我只想在特定房间上在线显示用户。 下面的代码是调用my online的函数。这是我的聊天记录。当我加载页面时,这个函数也会加载。 在线 的PHP 这是我网上的内容。php 有什么帮助吗?

  • 当我试图将一个博客条目添加到我的数据库中时,我总是得到一个错误。我有一个简单的语法荧光笔,但它不显示什么地方不对劲。 错误:< code>PHP解析错误:语法错误,意外的T_OBJECT_OPERATOR,在第75行和第71行应为“)” 我的脚本:

  • 我在今年八月开发了一个laravel应用程序,当时运行良好。我现在试图运行该应用程序,它返回以下错误: 分析错误:语法错误,意外的T_类,应为T_字符串或T_变量,或D:\bkonme\artisan第31行中的“{”或“$” 第31行是这样的: 我的版本是,我在平台上使用。我有一些想法的发生,因为一些版本之间的冲突和,但我不知道如何解决这个问题,任何帮助?

  • 我以前从未遇到过这种情况,但现在我们开始: 有什么想法吗? 运行php fpm 5.3 Ubuntu 看起来好像评论不起作用...

  • PHP7.0。27(cli)(创建时间:2018年1月23日09:07:32)(NTS) 版权所有(c)1997-2017 PHP Group Zend Engine v3。0.0,版权所有(c)1998-2017 Zend Technologies 分析错误:语法错误,意外的T_类,应为T_字符串或T_变量或“$”在/path_to_项目/artisan在线31 X-Powered-By:PHP

  • 第22行是: 我不知道为什么我会得到这个,我已经检查了我的语法,所有似乎是正确的。它基本上不喜欢执行查询后的任何内容 编辑: 我明白这是容易SQL注入,但我这样做只是为了测试目的。