一、变量的概述

变量是程序运行过程中,内容可以变化(修改)的量,变量的功能是存储用户的数据,是计算机语言中能存储结算结果或能表示值抽象概念。变量,是通过变量的标识符定位值的过程。

Go语言是强类型语言,变量必须有类型,同时变量仅仅可以存储特定类型的数据。Go语言中的变量必须声明后才可以使用,不能直接使用未定义的变量。

定义变量使用var关键字,需要制定其类型,可以同时初始化,如果没有指定初始化值,则使用类型的默认值,语法如下:

//声明变量,未初始化
var name string
//声明变量,特定值初始化
var user string = "john"
Go语言的类型默认值如下所示:
整型和浮点型变量的默认值为0
字符串变量的默认值为空字符串
布尔型变量默认为bool
切片、函数、指针变量的默认为nil

二、变量的格式

①//变量声明加赋值
package main

import "fmt"

	func main() {
		var dog string = "animal"
		fmt.Println(dog)

		var age int = 6
		fmt.Println(age)

		var flag bool = true
		fmt.Println(flag)
	}
//执行结果
GOROOT=/usr/local/go #gosetup
GOPATH=/Users/wang/GolangProjects #gosetup
/usr/local/go/bin/go build -o /private/var/folders/xb/kpzbs3093glfj2sg30q976cc0000gp/T/___go_build_main_go /Users/wang/GolangProjects/src/awesomeProject2/main.go #gosetup
/private/var/folders/xb/kpzbs3093glfj2sg30q976cc0000gp/T/___go_build_main_go #gosetup
animal
6
true

Process finished with exit code 0
②//变量先声明再赋值
import "fmt"

func main() {

		var name string
		name = "wang"
		fmt.Println(name)
	}
//执行效果
GOROOT=/usr/local/go #gosetup
GOPATH=/Users/wang/GolangProjects #gosetup
/usr/local/go/bin/go build -o /private/var/folders/xb/kpzbs3093glfj2sg30q976cc0000gp/T/___go_build_main_go /Users/wang/GolangProjects/src/awesomeProject2/main.go #gosetup
/private/var/folders/xb/kpzbs3093glfj2sg30q976cc0000gp/T/___go_build_main_go #gosetup
wang

Process finished with exit code 0

三、变量使用的场景

//①调用重复性的输出
import "fmt"

func main() {

		var error string = "Please check it again"
		fmt.Println(error)
	        fmt.Println(error)
	        fmt.Println(error)
}
//显示
GOROOT=/usr/local/go #gosetup
GOPATH=/Users/wang/GolangProjects #gosetup
/usr/local/go/bin/go build -o /private/var/folders/xb/kpzbs3093glfj2sg30q976cc0000gp/T/___go_build_main_go /Users/wang/GolangProjects/src/awesomeProject2/main.go #gosetup
/private/var/folders/xb/kpzbs3093glfj2sg30q976cc0000gp/T/___go_build_main_go #gosetup
Please check it again
Please check it again
Please check it again

Process finished with exit code 0
②//存储数据
import "fmt"

func main() {
	var v1 int = 1
	var v2 int = 2
	var v3 int = 3
	var va4 int = v1 + v2
	var va5 int = v1 * v2 * v3
	fmt.Println(v1, v2, v3, va4, va5)
}
//显示
GOROOT=/usr/local/go #gosetup
GOPATH=/Users/wang/GolangProjects #gosetup
/usr/local/go/bin/go build -o /private/var/folders/xb/kpzbs3093glfj2sg30q976cc0000gp/T/___go_build_main_go /Users/wang/GolangProjects/src/awesomeProject2/main.go #gosetup
/private/var/folders/xb/kpzbs3093glfj2sg30q976cc0000gp/T/___go_build_main_go #gosetup
1 2 3 3 6

Process finished with exit code 0
③//用户输入字符串赋值给变量
package main

import "fmt"

func main() {
	var fruit string
	fmt.Scanf("%s",&fruit) //交互式
	fmt.Println(fruit)
}
//显示
GOROOT=/usr/local/go #gosetup
GOPATH=/Users/wang/GolangProjects #gosetup
/usr/local/go/bin/go build -o /private/var/folders/xb/kpzbs3093glfj2sg30q976cc0000gp/T/___go_build_main_go /Users/wang/GolangProjects/src/awesomeProject2/main.go #gosetup
/private/var/folders/xb/kpzbs3093glfj2sg30q976cc0000gp/T/___go_build_main_go #gosetup
banana //此处会夯住,等待输入变量的值
banana

Process finished with exit code 0
//和判断结合
package main

import "fmt"

func main() {
	var fruit string
	fmt.Scanf("%s",&fruit) //交互式
	if fruit == "banana" {
		fmt.Println("水果名称输入对了")
	} else {
		fmt.Println("水果名称输入错了")
	}
}
//显示
GOROOT=/usr/local/go #gosetup
GOPATH=/Users/wang/GolangProjects #gosetup
/usr/local/go/bin/go build -o /private/var/folders/xb/kpzbs3093glfj2sg30q976cc0000gp/T/___go_build_main_go /Users/wang/GolangProjects/src/awesomeProject2/main.go #gosetup
/private/var/folders/xb/kpzbs3093glfj2sg30q976cc0000gp/T/___go_build_main_go #gosetup
banana
水果名称输入对了

Process finished with exit code 0

四、变量名的要求:

①变量名必须只包含:字母、数字、下划线;②数字不能开头;③不能使用go语言内置的关键字,如以下关键字:

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

五、变量简写

1.声明+赋值

var name string = "wang" //完整格式
var name = "wang" //go语言自动识别出为字符串类型
name := "wang" //var省略 (推荐)

2.先声明再赋值

var name string
var message string
var data string
var name,message,data string //声明放在一行
name = "wang"
message = "收到了"
data = "5条信息"

3.变量分解,有不同的类型

//变量定义
package main

import "fmt"

func main() {
	var (
		name   = "wang"
		age    = 26
		hobby  = "learning"
		gender string //只声明未赋值,字符串默认的值为空字符串
	)
	fmt.Println(name, age, hobby, gender)
}
//显示
GOROOT=/usr/local/go #gosetup
GOPATH=/Users/wang/GolangProjects #gosetup
/usr/local/go/bin/go build -o /private/var/folders/xb/kpzbs3093glfj2sg30q976cc0000gp/T/___go_build_main_go /Users/wang/GolangProjects/src/awesomeProject2/main.go #gosetup
/private/var/folders/xb/kpzbs3093glfj2sg30q976cc0000gp/T/___go_build_main_go #gosetup
wang 26 learning 

Process finished with exit code 0

注意:go编译器中声明的变量必须使用,不然会报错。

Categories: go

0 Comments

发表评论

Avatar placeholder

邮箱地址不会被公开。 必填项已用*标注