The Go Programming Language
http://golang.org/
Go Playground
Go Projects
Revel Web Framework
ThinkStu

为什么短赋值语句 := 不能在函数外使用

  •  
  •   ThinkStu · Jul 11, 2023 · 2447 views
    This topic created in 1067 days ago, the information mentioned may be changed or developed.
    一直不明白在 golang 中为什么会有这一条规定
    7 replies    2023-07-11 23:01:53 +08:00
    0TSH60F7J2rVkg8t
        1
    0TSH60F7J2rVkg8t  
       Jul 11, 2023
    我的理解不一定对,短赋值语句实际上是一个声明语句+一个赋值语句构成的,赋值既声明。函数体内这种情况不复杂,不涉及其它地方的调用,简单也方便。但函数外属于全局变量,如果允许短赋值声明的话,可能在单元 A 里面,声明一个 foo ,结果在单元 B 里面又声明了一个 foo ,此时两个 foo 是有歧义的,可能隐含各种可能的 bug ,所以才不允许吧。乱猜的不一定对。
    Frankcox
        2
    Frankcox  
       Jul 11, 2023   ❤️ 3
    kaf
        3
    kaf  
       Jul 11, 2023
    为了 gc 效率吧
    Trim21
        4
    Trim21  
       Jul 11, 2023 via Android
    @Frankcox 感觉这个答案可以用来解决 80%的 go 语法问题…


    @kaf var 还是:=两种写法在 gc 上没区别的
    fgwmlhdkkkw
        5
    fgwmlhdkkkw  
       Jul 11, 2023 via Android
    golang 就是土包金,,,runtime 非常好,语法非常烂。那个泛型还不如不加呢,,,简直糊弄😅
    2j0a3Lwf7E7muKp5
        6
    2j0a3Lwf7E7muKp5  
       Jul 11, 2023 via iPhone
    在外边使用:= 你不感觉很容易遗漏出问题吗
    trzzzz
        7
    trzzzz  
       Jul 11, 2023
    @fgwmlhdkkkw go 虽然有,但总感觉没有 java 中那么好用,学起来总感觉迷迷糊糊的
    About   ·   Help   ·   Advertise   ·   Blog   ·   API   ·   FAQ   ·   Solana   ·   2780 Online   Highest 6679   ·     Select Language
    创意工作者们的社区
    World is powered by solitude
    VERSION: 3.9.8.5 · 46ms · UTC 12:10 · PVG 20:10 · LAX 05:10 · JFK 08:10
    ♥ Do have faith in what you're doing.