Administrator
发布于 2023-11-25 / 37 阅读 / 0 评论 / 0 点赞

Golang学习笔记2——数据类型、变量、常量

Golang学习笔记2——数据类型、变量、常量

数据类型

Go语言数据类型可以分为以下四种:

布尔型

true或false,例如 var b bool = true

数字类型-整型

uint8、uint16、uint32、uint64、int8、int16、int32、int64、int、uint、uintptr、byte、rune

数字类型-浮点型

float32、float64、complex32、complex64

字符串类型

Go的字符串就是由字节组成的定长数组。Go语言的字符串使用UTF-8编码标识Unicode文本

派生类型

(a) 指针类型(Pointer)

(b) 数组类型

(c) 结构化类型(struct)

(d) Channel 类型

(e) 函数类型

(f) 切片类型

(g) 接口类型(interface)

(h) Map 类型


变量

Go语言变量声明:

// Go语言变量声明使用var关键字,变量类型跟在变量之后
var x int
// 可以同时声明多个变量
var x, y int
// 未初始化的变量默认为零值(0、false、""、nil)
// 声明变量时进行初始化
var x, y int = 1, 2
// 根据值自动推断变量类型
var x, y = 1, false
// :=语句,声明的同时进行初始化
x, y := 1, false

int、float、bool 和 string 这些基本类型都属于值类型,可以通过&获取变量地址

局部变量未在相同的代码块中使用,则会报错。而全局变量允许声明但不适用。

常量

常量是在程序运行时不会被修改的量,只可以是数字型、布尔型和字符串型

// Go语言常量定义
// const identifier [type] = value
const b string = "abc"	// 显式类型定义
const b = "abc"			// 隐式类型定义
const a, b = 1, 2		// 多常量定义
常量的应用
//用作枚举
const (
    Unknown = 0
    Female = 1
    Male = 2
)

常量可以用len(), cap(), unsafe.Sizeof()函数计算表达式的值,必须时内置函数

package main

import "unsafe"
const (
    a = "abc"
    b = len(a)
    c = unsafe.Sizeof(a)
)

func main(){
    println(a, b, c)
}

iota

iota是Go语言中的特殊常量,iota在const关键字出现时被重置为0,然后const每新增1行,iota将计数1次(iota += 1),例如:

package main

import "fmt"

func main() {
    const (
            a = iota   //0
            b          //1
            c          //2
            d = "ha"   //独立值,iota += 1
            e          //"ha"   iota += 1
            f = 100    //iota +=1
            g          //100  iota +=1
            h = iota   //7,恢复计数
            i          //8
    )
    fmt.Println(a,b,c,d,e,f,g,h,i)	//输出0 1 2 ha ha 100 100 7 8
}


评论