学习准备:
- 首先是go语言的中文标准库文档:标准库链接
- 其次就是golang环境的配置,设置好GOROOT(go安装文件夹)以及在GOPROOT文件夹下创建3个主要文件夹:bin,pkg,src(写代码的区域,在此文件夹下创建个人项目)。
核心知识点
变量:是程序的基本组成单位
变量相当于内存中一个数据存储空间的表示,可以把变量看做房间的门牌号,通过门牌号找到房间;我们也可以通过变量名访问变量(存储空间中的值)。
变量的使用步骤
- 声明变量
- 给变量赋值
- 使用变量(go语言中仅定义和赋值后不使用该变量会报错)
变量入门案例:
package main
import "fmt"
func main() {
//声明变量
var i int
//给i赋值
i = 10
//使用变量
fmt.Println("i=", i)
}
在终端中进入该文件所在目录后,可以go build ##.go,编译为可执行文件后执行该程序;或直接go run ##.go(编译加运行)
输出结果:i= 10
golang变量使用的三种方式
- 指定变量类型,声明后若不赋值,使用默认值
package main
import "fmt"
func main() {
//golang的变量使用方式1
//指定变量类型,声明后若不赋值,使用默认值
//int 默认值为0
var i int
fmt.Println("i=", i)
}
输出结果:i= 0 /
- 根据值自行判断变量类型(类型推导)
//根据值自行判断变量类型(类型推导)
var num = 10.11
fmt.Println("num=", num)
输出结果:num= 10.11
- 省略var,注意:=左侧的变量不能是已经声明过的,否则会导致编译错误
//省略var,注意:=左侧的变量不能是已经声明过的,否则会导致编译错误
//下面的方式等价 var name string = "tom"
//:=中的:不能省略,否则错误
name := "tom"
fmt.Println("name=", name)
输出结果:name= tom
多变量声明
一次性声明多个变量的三种方式:
举例说明:
package main
import "fmt"
func main() {
//演示如何一次性声明多个变量
// var n1, n2, n3 int
// fmt.Println("n1:", n1, "n2:", n2, "n3:", n3)
// 输出结果:n1: 0 n2: 0 n3: 0
//一次性声明多个变量的方式2
// var n1, name, n3 = 100, "tom", 888
// fmt.Println("n1:", n1, "name:", name, "n3:", n3)
// 输出结果:n1: 100 name: tom n3: 888
//一次性声明多个变量的方式3,同样可以使用类型推导
n1, name, n3 := 100, "tom2", 888
fmt.Println("n1:", n1, "name:", name, "n3:", n3)
// 输出结果:n1: 100 name: tom2 n3: 888
}
如何声明全局变量
代码示例:
package main
import "fmt"
//定义全局变量
var n1 = 100
var n2 = 200
var name = "jack"
//改成一次性声明
var (
n3 = 300
n4 = 400
name2 = "rose"
)
func main() {
//输出全局变量
fmt.Println("n1:", n1, "n2:", n2, "name:", name)
//输出一次性声明的全局变量
fmt.Println("n3:", n3, "n4:", n4, "name2:", name2)
}
该区域的数据值可以在同一类型范围内不断变化
package main
import "fmt"
//变量使用的注意事项
func main() {
//该区域的数据值可以在同一类型范围内不断变化
var i int = 10
i = 30
i = 90
fmt.Println("i=", i) //i= 90
//i = 10.12 //int,原因是不能改变数据类型,报错
}
变量在同一个作用域内不能重名(不论什么形式)
变量=变量名+值+数据类型(变量三要素)
golang的变量如果没有赋初值,则会赋默认值,int为0,string为空串,浮点型也为0等
程序中+号的使用
两边为数值时为相加
两边为字符串时是拼接
案例:
package main
import "fmt"
//golang中+号的使用
func main() {
var i int = 3
var j int = 7
n := i + j //加法运算
fmt.Println("n=", n) //n= 10
var str1 string = "hahaha"
var str2 string = "yingyingying"
var str3 string = str1 + str2 //字符串拼接操作
fmt.Println("str3=", str3) //str3= hahahayingyingying
}