20180830-go变量定义

20180830-go变量定义


preface:

艰难入门golang ing….


Keyword : Variables

what

粗略有哪几种变量声明方式?

  • var关键字声明
    • var a int
  • :=
    • a, b, c, s := 3, 4, true, "abc"
  • 因式分解关键字
    • var (
      a int
      b bool
      str string
      )

变量的命名规则?

变量的命名规则遵循骆驼命名法,即首个单词小写,每个新单词的首字母大写,例如:numShipsstartDate

但如果你的全局变量希望能够被外部包所使用,则需要将首个单词的首字母也大写

有约定的话,在代码的可读性会更好。毕竟代码是给人读的。

变量初始化?

当一个变量被声明之后,系统自动赋予它该类型的零值:int 为 0,float 为 0.0,bool 为 false,string 为空字符串,指针为 nil。

记住,所有的内存在 Go 中都是经过初始化的。

这跟python中有什么不同?

自动判断类型与其他语言的不同之处?

Go 编译器的智商已经高到可以根据变量的值来自动推断其类型,这有点像 Ruby 和 Python 这类动态语言,只不过它们是在运行时进行推断,而 Go 是在编译时就已经完成推断过程。


why

为什么Go在声明变量时将变量的类型放在变量的名称之后?

  • 1.避免像 C 语言中那样含糊不清的声明形式

C语言: int* a, b; 只有 a 是指针而 b 不是
Go中: 可以轻松地将它们都声明为指针类型 var a, b *int

  • 2.这种语法能够按照从左至右的顺序阅读,使得代码更加容易理解。
var a int
var b bool
var str string

有点像英语和中文的区别:如果写成 var int a 就像中文的 定语加名词 ,写成var a int 就像英文的语法,先突出中心,再后面用定语修饰


how


when&where

各种声明方式各自的适用场景?

因式分解关键字的写法一般用于声明全局变量

目的都是为了更清晰的表达meanings


who


refs:


expansion

  • Go对于变量的内存分配跟Python中的有什么不同?
  • 什么时候时候变量全部大写?

inspire

严格的限制:

刚接触go语言,发现有一点很surprise,声明的变量或者import进来的包,你一定要使用,不然就会报错。

Vs Python 包管理:

goland 这个IDE,会自动删掉你的未使用的package,这跟Python有很大的不同,pycharm这个IDE最多就把未使用的包变成灰色。

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值