基础语法-注释
单行注释与多行注释
注释的主要功能是增强对代码的理解,不参与代码的运行。Go语言中的注释主要为单行注释与多行注释
package main
import "fmt"
// 单行注释
/*
main函数,go语言入口
注释和Hello World
*/
func main() {
// 打印一句话,并换行
fmt.Println("Hello World!!")
}
基础语法-变量
变量:可变化的量。
变量的定义与初始化
Go语言是静态类型语言,所有的类型都要明确定义,变量定义之后必须使用
一次定义一个
// var是声明变量的关键字,固定写法
// name就是变量的名称
// string: type代表变量的类型
// var 变量名 变量类型
// 每行代码 行尾无分号
var name string
一次多个
func func01() {
var name string = "刘备"
var age int = 19
fmt.Println(name, age)
/*
批量定义
未赋值的话,变量为该类型的默认值
整型和浮点型默认值为0和0.0
字符串默认值为空字符串
布尔类型默认为false
切片、函数、指针变量的默认值nil
建议使用驼峰命名法
*/
var (
label string
value int
ex string
userInfo string = "{name=刘备,age=19}"
)
fmt.Println(label, value, ex, userInfo)
// 直接赋值
tree := "树木"
river := "大河"
riverLength := 18000
fmt.Println(tree, river, riverLength)
// 打印类型
fmt.Printf("%T,%T", riverLength, tree)
// 打印数字类型
fmt.Printf("riverLength:%d,内存地址:%p", riverLength, &riverLength)
}
匿名变量
可以使用下划线接收变量,接收后该变量丢失,在这种场景下使用(即在调用函数时为了获取一个值,却因为该函数返回多个值而不得不定义一堆没用的变量)使用使得代码整洁,
func func03() {
a, _ := test()
_, b := test()
fmt.Println(a, b)
}
func test() (int, int) {
return 100, 200
}
变量的交换
Go语言的变量交换较为简单
func func02() {
var a int = 100
var b int = 200
b, a = a, b
fmt.Printf("a = %d , b = %d", a, b)
}
变量的作用域
变量的作用范围
函数体类内声明的为局部变量
作用域只在函数体内,函数的参数和返回值都属于局部变量
package main
import "fmt"
func main() {
// 函数内定义局部变量
var (
a string = "a"
b int = 2
// 顶一个全局变量name,也可以定义一个局部变量name,不过取值时就近一致
name = "局部变量name"
)
fmt.Println(a, b, name)
}
函数体外声明的为局部变量
package main
import "fmt"
var name string = "全局变量name"
func main() {
// 函数内定义局部变量
var (
a string = "a"
b int = 2
// 顶一个全局变量name,也可以定义一个局部变量name,不过取值时就近一致
name = "局部变量name"
)
fmt.Println(a, b, name)
}