Go 语言基础语法入门:变量、循环与条件语句实战
Go 语言以简洁高效著称,适合构建可靠的软件系统。本教程从零开始,通过具体代码实例带你快速上手 Go 语言的基础语法。
Hello World 入门
编写一个输出 "hello world" 的程序是了解任何语言的起点。以下是一个标准的 Go 程序结构:
package main
import "fmt"
func main() {
fmt.Println("hello world")
}
可以通过终端使用 go run 命令直接运行源码:
$ go run hello-world.go
若希望生成独立的可执行文件,可使用编译命令:
$ go build hello-world.go
编译后会在当前目录生成二进制文件,直接运行即可看到结果。
值类型(Values)
Go 支持多种内置数据类型,包括字符串、整数、浮点数和布尔值。以下是常见操作示例:
package main
import "fmt"
func main() {
// 字符串拼接
fmt.Println("go" + "lang")
// 整型运算
fmt.Println("1+1 =", 1+1)
// 浮点运算
fmt.Println("7.0/3.0 =", 7.0/3.0)
// 布尔运算
fmt.Println(true && false)
fmt.Println(true || false)
fmt.Println(!true)
}
变量声明(Variables)
Go 中的变量必须显式声明,这有助于在函数调用时进行类型检查。主要有两种声明方式:
- 标准声明:使用
var关键字,可以指定类型或不指定。未赋值的变量会自动获得零值(如 int 的 0)。 - 短变量声明:使用
:=操作符,编译器会自动推断类型,这是最常用的简化写法。
代码示例如下:
package main
import "fmt"
func main() {
var a string = "initial"
var b, c int = 1, 2
var d = true // 自动推断为 bool
var e int // e 被赋值为零值 0
f := "short" // 短变量声明
fmt.Println(a, b, c, d, e, f)
}
常量定义(Constants)
常量使用 const 关键字声明,可以是字符、字符串、布尔值或数字。数字常量具有任意精度,且在使用前无需指定类型,编译器会根据上下文自动推导。
package main
import "fmt"
import "math"
func main() {
const s string = "constant"
const n = 500000000
// 常量表达式可保持高精度
const d = 3e20 / n
fmt.Println(d) // 输出原始大数
fmt.Println(int64(d)) // 转换为特定类型
fmt.Println(math.Sin(n)) // 根据函数需求自动转换类型
}
循环结构(For)
for 是 Go 语言中唯一提供的循环结构。它提供了三种常见的用法:
- 基本循环:仅包含条件和更新步骤。
- 经典循环:包含初始化、条件和更新(类似 C/Java 的 for 循环)。
- 无限循环:无条件判断,需配合
break或return退出。
package main
import "fmt"
func main() {
i := 1
for i <= 3 { // 基本循环
fmt.Println(i)
i = i + 1
}
for j := 7; j <= 9; j++ { // 经典循环
fmt.Println(j)
}
for { // 无限循环
fmt.Println("loop")
break // 必须跳出,否则死循环
}
}
条件语句(If/Else)
Go 使用 if 和 else 处理分支逻辑。if 后面的括号不是必须的,但代码块必须用花括号括起来。此外,可以在条件表达式中直接声明局部变量,其作用域仅限于该 if-else 块内。
package main
import "fmt"
func main() {
if 7%2 == 0 {
fmt.Println("7 is even")
} else {
fmt.Println("7 is odd")
}
// 条件中声明变量
if num := 9; num < 0 {
fmt.Println(num, "is negative")
} else if num < 10 {
fmt.Println(num, "has 1 digit")
} else {
fmt.Println(num, "has multiple digits")
}
}
注意:Go 没有三目运算符(ternary operator),需使用完整的 if-else 结构实现。
多路选择(Switch)
switch 用于根据多个条件分支执行不同逻辑,替代冗长的 if-else if 链。它的优势在于:
1. 支持多值匹配(如 case time.Saturday, time.Sunday)。
2. 默认情况 default 处理未匹配项。
3. 无条件的 switch 可直接当作 if-else 使用。
package main
import "fmt"
import "time"
func main() {
i := 2
switch i {
case 1:
fmt.Println("one")
case 2:
fmt.Println("two")
default:
fmt.Println("other")
}
// 无条件 Switch
t := time.Now()
switch {
case t.Hour() < 12:
fmt.Println("before noon")
default:
fmt.Println("after noon")
}
}
以上就是 Go 语言基础语法的详细内容,更多关于 Go 语言进阶技巧的资料请关注本站其它相关文章!
免责声明:本文内容仅供参考,不代表本站观点。转载或引用请注明出处。









