go常量,变量

跳过安装环节
编写第一个go程序,输出”hello wolrd”

package main

import (
    "fmt"
)

func main() {
    fmt.Print("hello wolrd")
}

所有的.go文件中都有一个package关键字,用来声明文件在哪个包下
main中的main函数,编译后会成为一个可执行文件,作为程序的入口
import关键字用来导入包

声明变量
Go语言中的变量名的定义建议用小驼峰式命名

标准声明变量的格式
var 变量名 变量类型

批量声明变量

var (
    a string
    b int
    c bool
    d float32
)

Go语言中的非全局变量声明后必须使用,不使用编译不通过,全局变量声明后可以不使用

变量声明的同时赋值

var s1 string = "dong"
var s1  = "dong"

简短变量命名(只可以在函数中使用)

ss := 123

匿名变量
在使用多重赋值时,如果想要忽略某一个值时,可以使用匿名变量,匿名变量用 _ 表示
匿名变量不占用命名空间,不分配内存,所以不存在重复声明

a, _ := 1, 2

常量
常量的关键字const

const a = 100

批量常量声明

const (
    a = 1
    b = 2
    c = 3
    d = 4
)

常见问题

const (
    a = 1 //1
    b     //1
    c     //1
    d     //1
)

在此代码中b,c,d的值都为零
在批量定义常量时,如果没有给常量赋值,那么他的值就和上一行的值相同
Iota
Iota关键字在const出现后重置为零,const中每新增一行,iota就会计数一次每次+1,(iota可以理解为是,const语句块的索引)使用iota可以简化定义,在定义枚举时很有用
举例

const (
    a = iota //0
    b     //1
    c     //2
    d     //3
)

在const中使用iota不会受到_的影响

const (
    a = iota //0
    b     //1
    _     //2
    d     //3
)

可不会受到赋值的影响

const (
    a = iota //0
    b = 100  //100
    c = iota //2
    d        //3
)

每一行中iota的值都是相同的

const (
    a1,a2 = iota+1,iota+2 //a1 = 1,a2 = 2
    b1,b2 = iota+1,iota+2 //b1 = 2,b2 = 3
)

定义数量级(<<符号为二进制左右符号)

const (
    KB = 1 << (10 * iota)
    MB = 1 << (10 * iota)
    GB = 1 << (10 * iota)
    TB = 1 << (10 * iota)
    PB = 1 << (10 * iota)
)
上一篇:常量和iota


下一篇:阿里:有益的d技术