2.Go基本语法
3.1 变量定义方法
var 定义变量
var name string = "zhangsan"
var age int = 21
var isOK bool
执行结果
package main
import "fmt"
func main() {
//变量定义: var 变量名 类型 = 值
var name string = "zhangsan"
var age int = 21
var isOk bool
var age2 int
fmt.Print(name,age,isOk,age2)
}
//-------------
zhangsan21 false 0
类型推导方式定义变量
a 在函数内部,可以使用更简略的 :=
方式声明并初始化变量。
注意:短变量只能用于声明局部变量,不能用于全局变量的声明
// 变量名 := 表达式
n :=10
var age = 18
执行结果
package main
import "fmt"
func main() {
//类型推导方式定义 :=
n :=10
var age = 18
fmt.Print(name,age1,isOk,age2,n,age)
}
//zhangsan21 false 0 10 18
一次定义多个变量
package main
import "fmt"
func main() {
//变量定义: var 变量名 类型 = 值
var name string = "zhangsan"
var age1 int = 21
var isOk bool
var age2 int
//类型推导方式定义 :=
n :=10
var age = 18
fmt.Print(name,age1,isOk,age2,n,age)
//一次定义多个变量
var username , sex string
username = "张三"
sex = "男"
fmt.Println(username,sex)
}
执行结果
package main
import "fmt"
func main() {
//一次定义多个变量
var username , sex string
username = "张三"
sex = "男"
fmt.Println(username,sex)
}
//张三 男
批量声明变量
var(
a string
b int
c bool
)
a = "张三"
b = 10
c = true
fmt.Println(a,b,c)
执行结果
package main
import "fmt"
func main() {
//批量声明变量
var(
a string
b int
c bool
)
a = "张三"
b = 10
c = true
fmt.Println(a,b,c)
}
//张三 10 true
3.2 常量定义
声明了 pi 和 e 这两个常量之后,在整个程序运行期间它们的值都不能再发生变化了。
//const pi = 3.1415
//const e = 2.7182
//多个常量可以一起声明
const (
pi = 3.1415
e = 2.1782
)
const 同时声明多个常量时,如果省略了值则表示和上面一行的值相同
const (
n1 = 100
n2
n3
)
3.3 fmt 包
Println
:- 可以一次输入多个值,并且值之间会自动加入空格。
- 会自动换行。
Print
:- 和
Println
类似,但是不会自动加空格和换行。
- 和
Printf
:- 支持格式化输出,可以更方便地控制输出格式。比如
%s
用来输出字符串,%d
用来输出整数。
- 支持格式化输出,可以更方便地控制输出格式。比如
Sprintf
:- 和
Printf
相似,但是Sprintf
返回的是格式化后的字符串,而不会直接输出。
- 和
在代码中使用这些函数时,要注意以下几点:
Print
和Println
可以直接输出任意类型的变量。Printf
需要指定格式字符串,每个变量需要对应的格式占位符。Sprintf
只是生成一个格式化字符串,并不输出。
package main
import "fmt"
func main() {
fmt.Print("zhangsan", "lisi", "wangwu") // 不会有空格,不会换行
fmt.Println("zhangsan", "lisi", "wangwu") // 自动有空格并换行
name := "zhangsan"
age := 20
fmt.Printf("%s 今年 %d 岁", name, age) // 格式化输出
info := fmt.Sprintf("姓名: %s, 性别: %d", name, 20) // 格式化并返回字符串
fmt.Println(info) // 输出info字符串
}
//zhangsanlisiwangwuzhangsan lisi wangwu
//zhangsan 今年 20 岁姓名: zhangsan, 性别: 20
3.4 Init函数和函数和main函数函数
main 函数
// Go语言程序的默认入口函数(主函数):func main()
// 函数体用{}一对括号包裹
func main(){
//函数体
}
init 函数
go语言中 init 函数用于包 (package) 的初始化,该函数是go语言的一个重要特性。
有下面的特征:
- init函数是用于程序执行前做包的初始化的函数,比如初始化包里的变量等
- 每个包可以拥有多个init函数
- 包的每个源文件也可以拥有多个init函数
- 同一个包中多个init函数的执行顺序go语言没有明确的定义(说明)
- 不同包的init函数按照包导入的依赖关系决定该初始化函数的执行顺序
- init函数不能被其他函数调用,而是在main函数执行之前,自动被调用