变量和常量
变量
Go语言使用 var 关键字来声明变量,格式如下:
var 变量名 类型
例如:
var a int
a = 1
或者可以在声明的同时进行赋值:
var b string = "hello"
也可以使用短变量声明方式:
c := true
常量
Go语言使用 const 关键字来声明常量,格式如下:
const 常量名 类型 = 值
例如:
const pi float32 = 3.14
或者可以省略类型:
const name = "ziyi"
数据类型
Go语言的数据类型包括基本类型和复合类型。
基本类型
Go语言的基本类型包括:
- bool
- 数值类型:int、int8、int16、int32、int64、uint、uint8、uint16、uint32、uint64、float32、float64、complex64、complex128
- string
例如:
var a bool = true
var b int = 10
var c float64 = 3.14
var d string = "hello"
复合类型
Go语言的复合类型包括:
- 数组
- 切片
- 映射
- 结构体
- 接口
- 函数
例如:
// 数组
var arr [5]int
arr[0] = 1
arr[1] = 2
// 切片
var slice []int = make([]int, 3)
slice[0] = 1
slice[1] = 2
// 映射
var m map[string]int = make(map[string]int)
m["a"] = 1
m["b"] = 2
// 结构体
type Person struct {
Name string
Age int
}
var p Person
p.Name = "Tom"
p.Age = 20
// 接口
type Animal interface {
Move() string
}
type Cat struct {}
func (c Cat) Move() string {
return "I can walk and run"
}
// 函数
func add(a, b int) int {
return a + b
}
控制语句
条件语句
Go语言的条件语句包括 if 语句和 switch 语句。
if语句
if语句的格式如下:
if 条件 {
// 执行语句
} else if 条件 {
// 执行语句
} else {
// 执行语句
}
例如:
var score int = 80
if score >= 90 {
fmt.Println("A")
} else if score >= 80 {
fmt.Println("B")
} else {
fmt.Println("C")
}
switch语句
switch语句的格式如下:
switch 变量 {
case 值1:
// 执行语句
case 值2:
// 执行语句
default:
// 执行语句
}
例如:
var day int = 2
switch day {
case 1:
fmt.Println("Monday")
case 2:
fmt.Println("Tuesday")
default:
fmt.Println("Other day")
}
循环语句
Go语言的循环语句包括 for 语句。
for语句
for语句的格式如下:
for 变量 := 初始值; 变量 < 终止值; 变量++ {
// 执行语句
}
例如:
for i := 0; i < 5; i++ {
fmt.Println(i)
}
还可以使用for-range的方式来遍历数组、切片、映射等数据类型。
例如:
var arr [5]int = [5]int{1, 2, 3, 4, 5}
for index, value := range arr {
fmt.Println(index, value)
}
函数
Go语言的函数使用 func 关键字来定义,格式如下:
func 函数名(参数列表) 返回值列表 {
// 执行语句
return 返回值
}
例如:
func add(a, b int) int {
return a + b
}
示例代码
下面是以上讲解的代码示例:
package main
import (
"fmt"
)
func main() {
// 变量和常量
var a int
a = 1
var b string = "hello"
c := true
const pi float32 = 3.14
const name = "ziyi"
// 数据类型
var arr [5]int
arr[0] = 1
arr[1] = 2
var slice []int = make([]int, 3)
slice[0] = 1
slice[1] = 2
var m map[string]int = make(map[string]int)
m["a"] = 1
m["b"] = 2
type Person struct {
Name string
Age int
}
var p Person
p.Name = "Tom"
p.Age = 20
type Animal interface {
Move() string
}
type Cat struct {}
func (c Cat) Move() string {
return "I can walk and run"
}
func add(a, b int) int {
return a + b
}
// 控制语句
var score int = 80
if score >= 90 {
fmt.Println("A")
} else if score >= 80 {
fmt.Println("B")
} else {
fmt.Println("C")
}
var day int = 2
switch day {
case 1:
fmt.Println("Monday")
case 2:
fmt.Println("Tuesday")
default:
fmt.Println("Other day")
}
for i := 0; i < 5; i++ {
fmt.Println(i)
}
var arr [5]int = [5]int{1, 2, 3, 4, 5}
for index, value := range arr {
fmt.Println(index, value)
}
}