Go语言学习之路——01Go语言基础变量和常量

2021-05-31  本文已影响0人  鸡蛋挂面

一、标识符的命名

标识符是程序员定义的具有特殊意义的词
比如:变量名、常量名、函数名
与大多数编程语言一样,标识符的命名规范是,由字母数字_(下划线)组成,并且只能以字母_开头。

二、变量

变量是用来存储数据的,不用的数据类型所对应的变量也不一样,数据是保存在内存中的,当程序需要用到数据的时候,会通过内存地址去查找数据,很不方便,所以就用变量来将这个数据的内存地址保存起来。
常见变量的数据类型有:整型、浮点型、布尔型等。

三、变量的声明与初始化

常规声明

Go语言的变量声明格式为:

var 变量名 变量类型

变量声明以关键字var开头,变量类型放在变量的后面,行尾无需分号。 举个例子:

var name string
var age int

批量声明

当需要声明多个变量时,需要写很多个var,会相对繁琐一点,可以使用合并同类项的方法批量声明:

var (
    a string
    b int
    c bool
    d float32
)

变量的初始化

在Go语言中,如果只声明了一个变量但是没有对其赋值,系统会默认对每个变量初始化成其类型的默认值。
例如: 整型和浮点型变量的默认值为0。 字符串变量的默认值为空字符串。 布尔型变量默认为false

01.初始化时赋值

可以在声明变量的时候为其指定初始值,格式如下:

var 变量名 类型 = 表达式

例子:

var name string = "Zhangsan"
var age int = 18

或者一次初始化多个变量

var name, age = "Zhangsan", 20
02.初始化后赋值

常见的赋值方式:

var name string
name = "zhangsan"
03.直接赋值

也叫类型推导,根据值判断变量的数据类型

var name = "zhangsan"
var age = "18"
04.短变量声明

在函数内部,可以使用更简略的:=方式声明并初始化变量。

package main

import "fmt"

func main() {
    n := 10
    m := 200 // 此处声明局部变量m
    fmt.Println(m, n)
}

Go语言中非全局变量声明后必须使用,不然在编译的时候会报错

四、常量

相对于变量,常量是保持不变的。常量的声明和变量的声明非常类似,只是把var换成了const,常量在定义的时候必须赋值。

const pi = 3.1415
const age = 22

批量声明

const (
    n1 = 100
    n2
    n3
)

const同时声明多个常量时,如果省略了值则表示和上面一行的值相同

五、iota

iotago语言的常量计数器,只能在常量的表达式中使用。
iota在const关键字出现时将被重置为0const中每新增一行常量声明将使iota计数一次(iota可理解为const语句块中的行索引)。 使用iota能简化定义,在定义枚举时很有用。

const (
        n1 = iota //0
        n2        //1
        n3        //2
        n4        //3
    )

使用_跳过某些值

const (
        n1 = iota //0
        n2        //1
        _
        n4        //3
    )

iota声明中间插队

const (
        n1 = iota //0
        n2 = 100  //100
        n3 = iota //2
        n4        //3
    )
    const n5 = iota //0

多个iota定义在一行

const (
        a, b = iota + 1, iota + 2 //1,2
        c, d                      //2,3
        e, f                      //3,4
    )

定义数量级 (这里的<<表示左移操作,1<<10表示将1的二进制表示向左移10位,也就是由1变成了10000000000,也就是十进制的1024。同理2<<2表示将2的二进制表示向左移2位,也就是由10变成了1000,也就是十进制的8。)

const (
        _  = iota
        KB = 1 << (10 * iota)
        MB = 1 << (10 * iota)
        GB = 1 << (10 * iota)
        TB = 1 << (10 * iota)
        PB = 1 << (10 * iota)
    )

参考文章:https://www.liwenzhou.com/posts/Go/01_var_and_const/

上一篇 下一篇

猜你喜欢

热点阅读