Golang 学习笔记——变量

Golang

This article was last updated on <span id="expire-date"></span> days ago, the information described in the article may be outdated.

Golang 变量

变量是计算机语言中能储存计算结果或能表示值的抽象概念。不同的变量保存的数据类型可能会不一样。

声明变量

G0 语言中的变量需要声明后才能使用,同一作用域内不支持重复声明。并且 G0 语言的变量声明后必须使用

声明变量的语法

var identifier type
/*
var:声明变量关键字
1dent1fier:变量名称
type:变量类型
*/

e.g.

package main

import "fmt"

func main() {
 var name string
 fmt.Printf("name: %v\n", name)
}

批量声明

package main

import "fmt"

func main() {
 // 批量声明
 var (
  name string
  age  int
  b    bool
 )

 name = "hyy"
 age = 14
 b = false

 fmt.Printf("name: %v\n", name)
 fmt.Printf("age: %v\n", age)
 fmt.Printf("b: %v\n", b)
}

变量的初始化

G0 语言在声明变量的时候,会自动对变量对应的内存区域进行初始化操作。每个变量会被初始化成其类型的默认值,例如:整型和浮点型变量的默认值为 0。字符串变量的默认值为空字符串 ""。布尔型变量默认为 false,切片、函数、指针变量的默认为 nil.

变量初始化语法

var 变量名 类型 = 表达式

e.g.

package main

import "fmt"

func main() {
 //变量初始化 赋初始值
 var title string = "lovehyy"
 var site string = "http://baidu.com"
 var agge int = 30
}

类型推断

package main

import "fmt"

func main() {
 // 类型推断
 var name = "hyy"
 var age = 20
 var b = true
 fmt.Printf("name: %v\n", name)
 fmt.Printf("age: %v\n", age)
 fmt.Printf("b: %v\n", b)
}

批量初始化

package main

import "fmt"

func main() {
 //批量初始化
 var name, age, b = "tom", 20, true
 fmt.Printf("name: %v\n", name)
 fmt.Printf("age: %v\n", age)
 fmt.Printf("b: %v\n", b)
}

短变量声明

在函数内部,可以使用 := 运算符对变量进行声明和初始化。

package main

import "fmt"

// name := "hyy" 不能用于函数外部

func main() {
 //短变量声明 := 不能用于函数外部
 name := "hyy"
 age := 51
 b := true
 fmt.Printf("name: %v\n", name)
 fmt.Printf("age: %v\n", age)
 fmt.Printf("b: %v\n", b)
}

注意:这种方法只适合在函数内部,函数外面不能使用。

匿名变量

如果我们接收到多个变量,有一些变量使用不到,可以使用下划线 _ 表示变量名称,这种变量叫做匿名变量。e.g.

  1. 函数定义
func getNameAndAge() (name string, age int) {
 return "hyy", 30
}

等价于:

func getNameAndAge() (string, int) {
 return "hyy", 30
}
  1. 接收函数返回值
package main

import "fmt"

func getNameAndAge() (string, int) {
 return "hyy", 30
}
func main() {
 // 调用函数,匿名变量,丢弃age
 name, _ := getNameAndAge()
 fmt.Printf("name: %v\n", name)
}

Author: WhaleFall

Permalink: https://www.whaleluo.top/golang/golang-variable-note/

文章默认使用 CC BY-NC-SA 4.0 协议进行许可,使用时请注意遵守协议。

Comments