douhuan6157 2014-08-27 05:03
浏览 321
已采纳

golang:var b Buffer和bytes.Buffer {}之间的区别

var b bytes.Buffer // A Buffer needs no initialization.


b := bytes.Buffer{}

What is the difference between these 2? I tried here: http://play.golang.org/p/lnkkULeIYm didn't see difference. Thanks,

  • 写回答

1条回答 默认 最新

  • dpdfh60088 2014-08-27 05:08
    关注

    := is the shorthand syntax of var, in that case b is a zero-valued bytes.Buffer.

    var b bytes.Buffer // is the same as
    var b = bytes.Buffer{} // is the same as 
    b := bytes.Buffer{}
    

    You can't use the short hand version outside functions, so for a global variable you have to use var.

    From http://tip.golang.org/ref/spec#Short_variable_declarations:

    Unlike regular variable declarations, a short variable declaration may redeclare variables provided they were originally declared earlier in the same block with the same type, and at least one of the non-blank variables is new.

    As a consequence, redeclaration can only appear in a multi-variable short declaration. Redeclaration does not introduce a new variable; it just assigns a new value to the original.

    本回答被题主选为最佳回答 , 对您是否有帮助呢?
    评论

报告相同问题?

悬赏问题

  • ¥15 乌班图ip地址配置及远程SSH
  • ¥15 怎么让点阵屏显示静态爱心,用keiluVision5写出让点阵屏显示静态爱心的代码,越快越好
  • ¥15 PSPICE制作一个加法器
  • ¥15 javaweb项目无法正常跳转
  • ¥15 VMBox虚拟机无法访问
  • ¥15 skd显示找不到头文件
  • ¥15 机器视觉中图片中长度与真实长度的关系
  • ¥15 fastreport table 怎么只让每页的最下面和最顶部有横线
  • ¥15 java 的protected权限 ,问题在注释里
  • ¥15 这个是哪里有问题啊?