GO语言基础之变量

GO语言基础之变量


标识符

用来定义变量名、常量名、函数的词;由字母、数字、_、组成;只能由字母和下划线开头。


关键字

Go语言中有25个关键字:

    break        default      func         interface    select
    case         defer        go           map          struct
    chan         else         goto         package      switch
    const        fallthrough  if           range        type
    continue     for          import       return       var

Go语言中还有37个保留字。

Constants:    true  false  iota  nil

Types:    int  int8  int16  int32  int64  
					uint  uint8  uint16  uint32  uint64  uintptr
					float32  float64  complex128  complex64
					bool  byte  rune  string  error

Functions:   make  len  cap  new  append  copy  close  delete
					complex  real  imag
					panic  recover

变量


变量声明

在go语言中,变量需要先声明,而且需要指定声明的数据类型。

变量声明关键字:var

局部单独声明 var str string  // 声明一个字符串类型的变量

全局批量声明 var(str string 
       	    number int 
        	  yes bool)

在go语言中定义的非全局变量必须使用,否则无法编译,这是go节约资源的机制。


变量赋值

func main(){
str = '字符串'
number = 1
yes = true
}

打印函数

func main() {
	str = "字符串"
	number = 1
	yes = true
	fmt.Printf("%s", str) // 占位打印
	fmt.Println(number)   // 换行打印
	fmt.Print(yes)        // 打印
}

变量的初始化

我们可在声明变量的时候为其指定初始值。变量初始化的标准格式如下:

var 变量名 类型 = 表达式
var str string = "字符串"

批量:
var str, number = "字符串", 1

类型推导

有时候我们会将变量的类型省略,这个时候编译器会根据等号右边的值来推导变量的类型完成初始化。

var str = "字符串"
var number = 1

短变量声明

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

package main

import (
	"fmt"
)
// 全局变量m
var m = 100

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

匿名变量

在使用多重赋值时,如果想要忽略某个值,可以使用匿名变量(anonymous variable)。 匿名变量用一个下划线_表示,例如:

(用于接受不需要的的参数,因为在go中不允许使用不到的变量被命名,所以直接用_去接收并释放掉。)

func foo() (int, string) {
	return 10, "Q1mi"
}
func main() {
	x, _ := foo()
	_, y := foo()
	fmt.Println("x=", x)
	fmt.Println("y=", y)
}

匿名变量不占用命名空间,不会分配内存,所以匿名变量之间不存在重复声明。 (在Lua等编程语言里,匿名变量也被叫做哑元变量。)


注意事项:

  1. 函数外的每个语句都必须以关键字开始(var、const、func等)
  2. :=不能使用在函数外。
  3. _多用于占位,表示忽略值。
posted @ 2022-08-03 22:04  Eason辰  阅读(45)  评论(0编辑  收藏  举报