以下内容仅供自己练习使用.阅读原文请参考https://www.liwenzhou.com/posts/Go/go_menu/
package main
//单一变量声明
//var name string
//var age int
//var isOk bool
//批量声明变量
//var (
// a string
// b int
// c bool
// d float32
//)
//变量初始化因为变量当前只是声明了一个类型.并未初始化.
//var name string = "Qimi" //声明变量类型并进行赋值
//var age int = 18 //同上
//类型推到
//var name = "qimi" //这里使用var就表示对变量进行了声明,不需要再使用":"
//var age = 1
//这里声明的是全局变量
//var m = 100
//
//func main() {
// //这里声明的是局部变量,
// n := 10
// m := 200
// fmt.Println(m,n)
//}
//匿名变量
//func foo() (int, string) {
// return 10, "qimi"
//
//}
//func main() {
// x, _ := foo() //表示只提取函数返回值中的第一个值,第二个值舍去
// _, y := foo() //同上 只提取第二个值.
// fmt.Println(x, y)
//}
//注意事项:
//1.函数外的每个语句都必须用关键字开始例如(var ,const func)
//:= 赋值方式不能在函数之外使用,(包括main函数和其他函数)
//_ 多用于返回值站位操作.表示站位位置的返回值忽略.
//常量
//const pi = 3.1415916
//const e =2.7182
//常量批量赋值
//const (
// pi = 3.14
// e = 2.7
//)
//同事声明多个相同常量值
//const (
// n1 = 100
// n2
// n3
// //这里未进行声明的常量值都是相同的
//)
//常量iota
//const (
// n0 =iota
// n1
// n2
// n3
// //这里表示第一个常量的值是0.随后逐一递增1.这里的n3=3
//)
//使用_ 跳过某些值
//const (
// n0 = iota
// n1 //1
// _
// n3 //3
// //这里同样从0开始声明n0的常量值,n3 表示的是3
//)
//声明中插队
//const (
// n1 = iota
// n2 = 100
// n3 = iota
// n4
// //这里n2是100 出现插队的情况.但是在原来的规则中n2位置的值应该是1.所以n3位置的值应该是2,n4=3,同一个常量声明中iota是按照位置进行累加的.
//)
//const n5 = iota //这里重新从0 开始计算
//定义数量级,位运算(这里<<表示左移操作, 1<<10 表示将1转换成二进制数字,然后将二进制数字中的所有1的位置向左移动10位,移动后的空缺位用0补全.然后再移动完成后转换成10进制数字后就是1024.
//const (
// _ = iota
// KB = 1 << (10 * iota) //1 的二进制数字向左移动10位,1024,
// MB = 1 << (10 * iota) //1 二进制向左移动20位 1024*1024
// GB = 1 << (10 * iota)
// TB = 1 << (10 * iota)
// PB = 1 << (10 * iota)
//)
//多个 iota在同一行
//const (
// a,b = iota +1,iota+2
// c,d
// e,f
// //这里说明一下,虽然我们在之前使用iota的时候都是逐一递增1的情况.但是这里是同时定义多个常量信息.所以对应关系有所改变.
// //a,c,e属于逐一递增关系. b,d,f属于逐一递增关系,那么最后的结果为 ace 123 ,bdf 234
//)