登录
首页 >  Golang >  Go问答

Go 语法存在哪些问题在这种情况下?

来源:stackoverflow

时间:2024-02-16 20:27:23 366浏览 收藏

Golang小白一枚,正在不断学习积累知识,现将学习到的知识记录一下,也是将我的所得分享给大家!而今天这篇文章《Go 语法存在哪些问题在这种情况下?》带大家来了解一下##content_title##,希望对大家的知识积累有所帮助,从而弥补自己的不足,助力实战开发!


问题内容

我试图编写一个函数,但这里的问题让我感到惊讶。

usergroup.use(
        middleware.basicauth(func(username, password string, c echo.context) (bool, error)  {
            if username == "joe" && password == "123"{
                return true, nil
            }
            return false, nil
        })  // <- error happens here
    )
usergroup.use(
        middleware.basicauth(func(username, password string, c echo.context) (bool, error)  {
            if username == "joe" && password == "123"{
                return true, nil
            }
            return false, nil
        })) // <- !!

花了一个小时解决一个错误,但结果发现最后一个右括号不能浮动。 这是分号、逗号或缩进的问题吗? 我记得js不关心这种东西 我收到的错误是:

missing ',' before newline in argument list |syntax

正确答案


这是 golang 分号规则的结果:https://go.dev/doc/effective_go#semicolons,其中 go 在扫描源时添加了分号,因此原始源中没有分号。

遵循“如果换行符位于可以结束语句的标记之后,则插入分号”的规则,您之前的代码将如下所示:

userGroup.Use(
        middleware.BasicAuth(func(username, password string, c echo.Context) (bool, error)  {
            if username == "joe" && password == "123"{
                return true, nil
            }
            return false, nil
        });  // <- semicolon added here
    )

这当然是错误的并导致错误。移动该行的右括号可以解决这个问题。

以上就是《Go 语法存在哪些问题在这种情况下?》的详细内容,更多关于的资料请关注golang学习网公众号!

声明:本文转载于:stackoverflow 如有侵犯,请联系study_golang@163.com删除
相关阅读
更多>
最新阅读
更多>
课程推荐
更多>