Go语言的基础语法
注释:
//我是单行的注释
/*
我是多行注释
我是多行注释
我是多行注释
*/
go语言的入口main
package main
go语言的helloworld
```go
import "fmt"
func main() {
var name string = "limoumou"
fmt.Println(name)
变量的定义
这里如果没有给变量赋值,打印出来,默认string类型的变量打印出来是空值,int类型打印出来是0
变量初始化
标准初始化
var(
name string
age int
addr string
)
name = ""
age=
addr=""
package main
import "fmt"
/*
1、定义 姓名name、年龄age、addr地址
2、“=” 赋值符号 将等号右边的值赋值给等号左边
3、打印输出
*/
func main() {
//1、定义 姓名name、年龄age、addr地址
var (
name string
age int
addr string
)
//2、“=” 赋值符号 将等号右边的值赋值给等号左边
name = "limoumou"
age = 20
addr = "nanjing"
//3、打印输出
fmt.Println(name, age, addr)
}
短变量声明初始化
package main
import "fmt"
/*
1、使用 := 自动推导 赋值给属性
2、打印输出name和age类型---printf
printf和print差一个f 表示类型
*/
func main() {
//1、使用 := 自动推导 赋值给属性
name := "lihao"
age := 28
//2、打印输出name和age类型---printf
fmt.Printf("%T,%T", name, age) //%T表示为输出类型,一个%T对应一个参数
}
内存地址
package main
import "fmt"
func main() {
//定义变量
var num int
num = 100
//打印输出的内存地址
fmt.Printf("num:%d,内存地址:%d", num, &num) //首先要获取这个变量的地址,使用取地址符&
num = 200
fmt.Printf("num:%d,内存地址:%d", num, &num) //首先要获取这个变量的地址,使用取地址符&
//变量值发生改变,内存地址不会发生改变,但每次重启,就会重新分配一个内存地址
}
交换变量
package main
import "fmt"
// 定义两个变量a和b,然后将a和b两个值交换,
func main() {
var a int = 100
var b int = 200
fmt.Printf("交换前a:%d,交换后b:%d\n", a, b) //这里的\n代表换行符
b, a = a, b
fmt.Printf("交换后a:%d,交换后b:%d", a, b)
}
匿名变量
package main
import "fmt"
/*
1、定义test方法,返回两个int类型的值
2、在main方法中定义两个变量接收,打印输出
3、将第二个变量用下划线废弃掉,打印输出
*/
// 1、定义test方法,返回两个int类型的值
func test() (int, int) {
return 100, 200
}
func main() {
//2、在main方法中定义两个变量接收,打印输出
a, b := test()
fmt.Println(a, b)
//3、将第二个变量用下划线废弃掉,打印输出
c, _ := test()
fmt.Println(c)
}
变量的作用域
一个变量在程序中都有一定的作用域
局部变量
只在一段程序中有作用
全局变量
在函数体外声明的变量
package main
import "fmt"
// 定义全局变量
var name string = "kuansshenshuo"
func main() {
fmt.Println(name) //kuansshenshuo
//也可以通过方法的调用
fmt.Println(name) //kuansshenshuo
//定义局部变量
name = "zhangsan"
fmt.Println(name) //zhangsan
}
func test02() {
fmt.Println(name)
}
常量
是一个简单值得标识符,在程序运行时,不会被修改的量
数据类型:布尔型,数字型,(整数型、浮点型和复数型)和字符串型
const
当定义完常量后,常量不允许被修改,否则会出错
package main
func main() {
const url string = "www.baidu.com"
url = "www.google.com"
}
iota
可以认为是go语言的一个常量,从0开始递加
package main
func main() {
const (
a = iota
b = iota
c = iota
d = 12
e = iota
)
const (
f = iota
g = iota
//iota直至iota被重置,才会从头开始
)
println(a, b, c, d, e)
println(f, g)
}