一、变量的概述
变量是程序运行过程中,内容可以变化(修改)的量,变量的功能是存储用户的数据,是计算机语言中能存储结算结果或能表示值抽象概念。变量,是通过变量的标识符定位值的过程。
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编译器中声明的变量必须使用,不然会报错。
0 Comments