第六届字节跳动青训营第四课 | 青训营
基础语法篇(二)
正文
main
当我们初次接触Golang语法时,有很多注意点需要特别关注。在以下详细的展示:
导入包(import):
import (
"fmt"
"math"
)
在Golang中,我们需要使用import关键字来导入所需的包。多个包需要导入时,可以使用括号将它们括起来并换行。
main函数:
func main() {
// 在这里编写代码
}
在Golang中,程序的入口是main函数。我们需要在main函数中编写程序的主要逻辑。
声明变量:
在Golang中,声明变量有多种不同的方式。例如:
使用var关键字声明变量:
var a int
var b string
var c float64
使用var关键字可以声明一个或多个变量。在声明时,需要指定变量的类型。
声明同时赋初值:
var a int = 10
var b string = "Hello"
var c float64 = 3.14
可以在声明变量时,同时给变量赋予初始值。初始值的类型必须与变量的类型相匹配。
(常用) 省去var关键字,直接自动匹配,使用简短声明(:=):
a := 10
b := "Hello"
c := 3.14
Golang中引入了简短声明的语法,可以更简洁地声明变量并赋初值。编译器会根据初始值的类型自动推断变量的类型。 但是此方法不支持全局变量的声明(编译会报错)。
声明多个变量:
var a, b, c int
var x, y, z = 1, "Hello", 3.14
可以一次性声明多个变量,并且可以给它们赋予相应的初始值。如果省略了类型,编译器会根据初始值的类型进行推断。
声明匿名变量:
var _ int
var _ string
在Golang中,可以使用下划线 _ 来声明一个匿名变量。匿名变量不占用内存空间,并且丢弃所有赋给它的值。
声明常量:使用 const 定义常量,常量是只读的,不允许修改。
const pi = 3.1415
const 可以用来定义枚举:
const (
Monday = 1
Tuesday = 2
Wednesday = 3
)
const 可以和 iota 一起使用来定义有规则的枚举:
const (
// 可以在const() 添加一个关键字 iota, 每行的iota都会累加1, 第一行的iota的默认值是0
BEIJING = iota // iota = 0
SHANGHAI // iota = 1
SHENZHEN // iota = 2
)
const (
a, b = iota+1, iota+2 // iota = 0, a = iota + 1, b = iota + 2, a = 1, b = 2
c, d // iota = 1, c = iota + 1, d = iota + 2, c = 2, d = 3
e, f // iota = 2, e = iota + 1, f = iota + 2, e = 3, f = 4
g, h = iota * 2, iota *3 // iota = 3, g = iota * 2, h = iota * 3, g = 6, h = 9
i, k // iota = 4, i = iota * 2, k = iota * 3 , i = 8, k = 12
)
常量的声明使用const关键字。常量在声明时必须赋予一个初始值,且不能被修改。可以单独声明常量,也可以使用括号同时声明多个常量。
以上是Golang中声明变量的一些不同方式。根据具体的情况和需求,选择合适的声明方式可以使代码更加清晰和易读。
条件语句:
if x > 0 {
fmt.Println("x is positive")
} else if x == 0 {
fmt.Println("x is zero")
} else {
fmt.Println("x is negative")
}
条件语句的语法与其他语言类似。需要注意的是,在条件表达式后面没有圆括号,而是使用大括号来定义代码块。
循环语句:
for i := 0; i < 5; i++ {
fmt.Println(i)
}
Golang中的循环语句只有for一种形式。它的初始化语句、 条件表达式和后置语句都写在一对圆括号中。
函数:
func add(a, b int) int {
return a + b
}
函数的声明使用func关键字,后面是函数名、参数列表和返回值类型。如果参数的类型相同,可以合并为a, b int的形式。
包:
package main
import "fmt"
func main() {
fmt.Println("Hello, world!")
}
Golang的代码组织以包为单位。每个程序都必须有一个main包和一个main函数作为入口。其他包可以通过import导入并使用其中的函数、变量等。