go语言学习—变量

一、变量声明

  go语言是静态类型语言,因此变量的类型是明确的,编辑器本身也会检查变量类型的正确性;变量是一段或多短用来存储数据的内存。

  • 全局变量

  在函数体外声明的变量称之为全局变量,全局变量只需要在一个源文件中定义,就可以在所有源文件中使用,当然,不包含这个全局变量的源文件需要使用“import”关键字引入全局变量所在的源文件之后才能使用这个全局变量。全局变量声明必须以 var 关键字开头,如果想要在外部包中使用全局变量的首字母必须大写。

  • 局部变量

  在函数体内声明的变量称之为局部变量,它们的作用域只在函数体内,函数的参数和返回值变量都属于局部变量。局部变量不是一直存在的,它只在定义它的函数被调用后存在,函数调用结束后这个局部变量就会被销毁。

  • 匿名变量

  匿名变量的特点是一个下划线,下划线本身就是一个特殊的标识符,被称为空白标识符。它可以像其他标识符那样用于变量的声明或赋值(任何类型都可以赋值给它),但任何赋给这个标识符的值都将被抛弃,因此这些值不能在后续的代码中使用,也不可以使用这个标识符作为变量对其它变量进行赋值或运算。使用匿名变量时,只需要在变量声明的地方使用下画线替换即可。匿名变量不占用内存空间,不会分配内存。匿名变量与匿名变量之间也不会因为多次声明而无法使用。

  • 形式参数

  在定义函数时函数名后面括号中的变量叫做形式参数(简称形参)。形式参数只在函数调用时才会生效,函数调用结束后就会被销毁,在函数未被调用时,函数的形参并不占用实际的存储单元,也没有实际值。形式参数会作为函数的局部变量来使用。

声明变量一般使用var关键字,go语言声明变量时将变量类型放在名称之后,这样做可以避免含糊不清的声明形式

var name type

  在go语言中,以下形式代表均声明为指针类型,这是与其他语言不同的

var a,b *int

go语言的基本类型

  • bool 默认值false
  • string 默认值""
  • int、int8、int16、int32、int64 默认值0
  • uint、uint8、uint16、uint32、uint64、uintptr 默认值0
  • byte //uint8别名
  • rune //int32别名 代表一个unicode码
  • float32、float64 默认值0.0
  • Complex64、cpmplex128 默认值0+0i

当一个变量被声明后,系统自动赋予它该类型的零值;所有的内存在go中都是经过初始化的,变量命名采用首个单词小写,每个新单词首字母大写的形式

变量声明

标准

var 变量名 变量类型

批量

var (
    a int
    b string
    c []float32
    d func() bool
    e struct {
        x int
    }
)

简短

  • 定义变量,同时显式初始化。
  • 不能提供数据类型。
  • 只能用在函数内部。
名字 := 表达式

二、变量初始化

标准格式

var 变量名 类型 = 表达式

编译器推导类型的格式

数据类型由右值推导得出

var 变量名 = 表达式

短变量声明并初始化

变量名 := 表达式

三、多重赋值

package main

import (
   //fmt包含有格式化I/O函数
  "fmt"
)

func main() {
  var a int = 100
  var b int = 200
  b, a = a, b
  fmt.Println(a, b)}

猜你喜欢

转载自blog.csdn.net/qq_42979842/article/details/114411401