学习Golang语言(3)

lz0426001 · · 953 次点击 · · 开始浏览    
这是一个创建于 的文章,其中的信息可能已经有所发展或是发生改变。

变量声明
Go语言不同于其他语言的地方在于:变量的类型在变量名之后。例如:
C中: int a;而在Go中:var a int。
此外,Go语言在定义变量时候如果没有赋值,则为该变量赋值为其类型的零值。
变量声明有两种方式:使用var关键字;或者使用:= 操作符赋值。
例如:
var number int //声明变量number为int数据,此时默认复制为0  
number := 2 //直接声明变量number,同时赋值为2

注意
使用 := 操作符声明变量和其初始值,不必明确指明变量类型,因为初始值已经说明了变量的类型。
:=操作符同时完成了变量声明和赋值的操作。
使用:= 操作符,对于整形字面量Go语言推断其类型为int,对于浮点型字面量Go语言推断其类型为float64 对于复数字面量Go语言推断其类型为complex128.
通常的做法是不去显式地声明其类型,除非我们需要使用一个Go语言无法推断的特殊类型。


多个var声明可以进行分组;const和import也可以进行类似操作。使用圆括号,例如:
var(
   a int
   b bool
)


多个相同类型的变量可以在一行完成声明:
var x,y int       //   将x和y声明为int变量同样可以这么使用:=操作符
a,b := 100,101  // 将a和b声明为int变量同时分别赋值:100和101  

Go中还有一个特殊的变量名 ' _'(下划线);它表示所有赋给它的值都被丢弃。
_, b := 100 , 101   // 表示丢弃100,将101赋值给变量b


对于声明了但没有使用的变量,在编译时候编译器会报错。这体现了Go语言简介的思想:所有无用的代码,库都不应该出现。


常量

说道变量声明,肯定需要谈到变量中的特例:常量。
常量在Go中也就是constant。它在编译时就被创建,只能是数字,字符串或者布尔值。
常量声明格式: const identifier [type] = value; 例如:const Pi = 3.14159 生成x这个常量。
其中[type] 是可选项。编译器会根据所赋值的类型自动为常量选择类型。
例如:
const a string = "hello"
const a = "hello"
以上两个效果一样。


常量必须是在编译时候被赋值,常量可以是被定义为一个计算式,但是计算式中所有值在编译时都是确定的。
例如:
正确:const c1 = 2/3
错误:const c2 = getNumber()//编译会出错,因为getNumber()在编译时值不确定。


数值型常量没有大小和符号的要求,可以是任意高的精度,不会溢出。
const Ln2= 0.693147180559945309417232121458\  
176568075500134360255254120680009  
const Log2E= 1/Ln2     // 这是一个精确的倒数  
const Billion = 1e9       // float 常量  
const hardEight = (1 << 100) >> 97  


数值型常量只有在赋值给一个精度太低不能代表其值的变量时才溢出。此时编译时会报错。
多个常量声明:
const beef, two, c = “meat”, 2, “veg”  
const Monday, Tuesday, Wednesday, Thursday, Friday, Saturday = 1, 2, 3, 4, 5, 6  
const (  
Monday, Tuesday, Wednesday = 1, 2, 3  
Thursday, Friday, Saturday = 4, 5, 6  
)  


而在生成枚举值时候可以使用关键字:itoa。
const(
     a = itoa
     b = itoa
)

第一个itoa表示0,因此a=0,当iota再次在新的一行中被使用,它的值会增加1.因此b =1.
此外,还可以进行一下省略:
const(
     a = itoa
     b
)
例如: 在 time 库中: 一周中每天的名字:
const (
Sunday = iota    // 0
Monday              // 1
Tuesday            // 2
Wednesday      // 3
Thursday          // 4
Friday                // 5
Saturday           // 6
)


有疑问加站长微信联系(非本文作者)

本文来自:CSDN博客

感谢作者:lz0426001

查看原文:学习Golang语言(3)

入群交流(和以上内容无关):加入Go大咖交流群,或添加微信:liuxiaoyan-s 备注:入群;或加QQ群:701969077

953 次点击  
加入收藏 微博
上一篇:go - 函数
暂无回复
添加一条新回复 (您需要 登录 后才能回复 没有账号 ?)
  • 请尽量让自己的回复能够对别人有帮助
  • 支持 Markdown 格式, **粗体**、~~删除线~~、`单行代码`
  • 支持 @ 本站用户;支持表情(输入 : 提示),见 Emoji cheat sheet
  • 图片支持拖拽、截图粘贴等方式上传