GO语言温习之变量

171 阅读2分钟

系列文章

  1. GO语言温习之回顾

本章主题


简述

 每种语言有每种语言的特点,变量作为Go语言的重要组成部分,一种值的抽象表示,代表程序运行过程中内容可以修改的量,其功能就是存储用户的数据。GO语言作为强类型语言,编译时会检查变量的类型,约定了变量只能赋该类型的值(接口除外)。

分类

  1. bool,string
    bool:布尔类型,true/false
    string:字符串类型

  2. (u)int,(u)int8,(u)int32,(u)int64,uintptr
    u代表有无符号或说是有无正负号
    int类型会根据操作系统来决定是32位还是64位
    uintptr代表指针类型。

  3. byte,rune
    byte和uint8表示范围是一样的,代表字节类型,表示一个字节的空间大小;
    run长度是32位,互联网很多情况下采用UTF-8编码,所以run采用了4字节存储空间。

  4. float32,float64,complex64,complex128
    float32/64表示浮点数类型;complex64/128表示数学中的复数,有实部和虚部,complex64两部分都是32位float,complex128两部分都是64位float。应用开发过程中用的较少。

默认值/零值

  • 整型默认值为0,浮点型是0.0
  • 字符串零值是空字符串
  • 布尔类型默认为false
  • 切片,函数,指针变量默认值为nil

声明方式

  1. 一行一个变量
    var <name> <type>
  2. 多个变量一起声明,声明组
var (
    id string
    name int
    isExist bool
 )  
  1. 短声明,只能在函数内
    name:="GO语言温习"
  2. 一行声明和初始化多个变量
name,isExist:="Go语言温习",true
var a int = 1
var b int = 2
b, a = a, b

  1. 通过new创建指针变量
//通过new(Type)创建一个Type类型的变量,并初始化为Type类型的零值,然后返回变量的地址
numptr:=new(int)
fmt.Println("ptr address:",ptr) //ptr address 0xc0000120e0
fmt.Println("ptr value:",*ptr) //ptr value 0
  1. make函数创建slice,map或chan类型变量
var slice = make([]int,0)
var m = make(map[string]int)
var c = make(chan int)
//其中chan只能用make创建和初始化,slice和map还可以采用如下方式
slice:=[]int{0,0}
m:=map[string]int{}

变量作用域

Go语言中变量是块作用域,块是使用{}定义的代码段,内层块可以直接访问到外层块的变量,如果内层块没有定义与外层块同名的变量情况下;没有嵌套的两个块,不可互相访问。


参考文章
掌握变量创建的六种方式