发布时间:2024-12-23 02:36:34
Go语言是一种开源的编程语言,由谷歌公司推出。它以其简洁、高效和并发性等特点而备受开发者的喜爱。本文将为你介绍Go语言的基础语法。
在Go语言中,变量的声明与赋值是一步完成的。例如我们要声明一个整数类型的变量age并赋值为18:
var age int = 18
我们也可以使用短变量声明的方式来声明变量:
age := 18
Go语言中的函数使用关键字func进行声明,以下是一个示例:
func add(a, b int) int {
return a + b
}
我们可以通过调用函数来获取返回值:
result := add(3, 5)
Go语言中的条件语句包括if语句和switch语句:
// if语句示例
if age >= 18 {
fmt.Println("成年人")
} else {
fmt.Println("未成年人")
}
// switch语句示例
switch day {
case "Monday":
fmt.Println("星期一")
case "Tuesday":
fmt.Println("星期二")
default:
fmt.Println("其他")
}
Go语言中的循环语句有for循环和range循环:
// for循环示例
for i := 0; i < 5; i++ {
fmt.Println(i)
}
// range循环示例
nums := []int{1, 2, 3, 4, 5}
for index, num := range nums {
fmt.Println(index, num)
}
在Go语言中,数组和切片是常用的数据结构。数组的长度是固定的,而切片可以动态增长。
// 声明数组
var nums [5]int
// 声明切片
nums := []int{1, 2, 3, 4, 5}
// 切片操作
slice := nums[:3] // 获取前三个元素
Go语言支持面向对象编程的特性,其中结构体用于定义自定义类型,方法用于给类型绑定相应的行为。
type Person struct {
Name string
Age int
}
func (p Person) SayHello() {
fmt.Println("Hello, my name is", p.Name)
}
func main() {
person := Person{"Alice", 20}
person.SayHello()
}
Go语言的并发模型基于协程(goroutine)和通道(channel)。以下是一个简单的并发示例:
func worker(id int, jobs <-chan int, results chan<- int) {
for j := range jobs {
fmt.Println("worker", id, "started job", j)
time.Sleep(time.Second)
fmt.Println("worker", id, "finished job", j)
results <- j * 2
}
}
func main() {
numJobs := 5
jobs := make(chan int, numJobs)
results := make(chan int, numJobs)
for w := 1; w <= 3; w++ {
go worker(w, jobs, results)
}
for j := 1; j <= numJobs; j++ {
jobs <- j
}
close(jobs)
for r := 1; r <= numJobs; r++ {
fmt.Println(<-results)
}
}
本文介绍了Go语言的基础语法,包括变量声明与赋值、函数、条件语句、循环语句、数组与切片、结构体与方法以及并发编程等内容。通过学习这些基础知识,你可以开始使用Go语言进行开发。