千锋教育-做有情怀、有良心、有品质的职业教育机构
简单易懂的Go语言教程
Go语言是一种由Google开发的编程语言,它的出现主要是为了解决C++和Java的缺点,具有高并发能力和优秀的性能,同时也具有简单易懂、语法简洁等特点,被广泛应用于云计算、容器化等领域。
本篇文章将介绍Go语言的基础语法以及常用的库函数和并发操作。
一、基础语法
1. 变量
在Go语言中,变量必须先声明后使用,可以使用var或:=关键字来进行变量声明。其中:=是一种简写形式,可以同时完成变量的声明和赋值。
示例代码:
var i int // 声明变量i,类型为inti = 10 // 给变量i赋值为10j := 20 // 简写形式,声明变量j并赋值为20
2. 数据类型
Go语言中的数据类型包括整型、浮点型、布尔型、字符串和指针等。
示例代码:
var i int // 整型var f float32 // 浮点型var b bool // 布尔型var s string // 字符串var p *int // 指针类型
3. 控制语句
Go语言中的控制语句包括if、for和switch等。
if语句用于条件判断,可以配合else和else if语句使用。
示例代码:
if i > j { fmt.Println("i > j")} else if i < j { fmt.Println("i < j")} else { fmt.Println("i = j")}
for语句用于循环操作,可以使用break和continue关键字控制循环的流程。
示例代码:
for i := 0; i < 10; i++ { if i == 5 { break // 终止循环 } if i == 3 { continue // 跳过本次循环 } fmt.Println(i)}
switch语句用于多条件选择,可以配合case和default语句使用。
示例代码:
switch i {case 1: fmt.Println("i = 1")case 2: fmt.Println("i = 2")default: fmt.Println("i is not 1 or 2")}
4. 函数
Go语言中的函数可以返回多个值,在函数名和参数列表之间声明返回类型。函数可以作为参数传递给其他函数,也可以被其他函数作为返回值调用。
示例代码:
func add(a int, b int) (int, error) { if a < 0 || b < 0 { return 0, errors.New("a or b is less than 0") } return a + b, nil}func main() { res, err := add(1, 2) if err != nil { fmt.Println(err) return } fmt.Println(res)}
二、常用库函数
1. fmt
Go语言中的fmt库提供了格式化输出和输入的函数,常用的函数包括Println、Printf、Scanln和Scanf等。
示例代码:
fmt.Println("Hello world!")fmt.Printf("i = %d, f = %f, s = %s\n", i, f, s)fmt.Scanln(&i, &f, &s)
2. strings
Go语言中的strings库提供了字符串相关的操作函数,常用的函数包括Contains、Join、Split等。
示例代码:
fmt.Println(strings.Contains("hello world", "world"))fmt.Println(strings.Join(string{"hello", "world"}, " "))fmt.Println(strings.Split("hello,world", ","))
3. strconv
Go语言中的strconv库提供了字符串和基本数据类型之间的转换函数,常用的函数包括Atoi、Itoa、ParseFloat等。
示例代码:
i, _ := strconv.Atoi("100")s := strconv.Itoa(100)f, _ := strconv.ParseFloat("3.14", 64)
三、并发操作
Go语言具有高并发的特点,可以使用goroutine和channel来进行并发操作。
1. goroutine
goroutine是Go语言中的轻量级线程,可以在程序中创建多个并发执行的任务。使用go关键字后跟函数调用语句即可启动一个新的goroutine。
示例代码:
func printNum() { for i := 0; i < 10; i++ { fmt.Println(i) }}func main() { go printNum() fmt.Println("Hello world!") time.Sleep(time.Second) // 防止程序过早退出}
2. channel
channel是Go语言中的通信机制,可以用于在多个goroutine之间传递数据。使用make函数创建一个channel,并通过<-符号进行发送和接收操作。
示例代码:
func send(ch chan<- int) { for i := 0; i < 10; i++ { ch <- i } close(ch) // 关闭channel}func recv(ch <-chan int) { for { if num, ok := <- ch; ok { fmt.Println(num) } else { break } }}func main() { ch := make(chan int) go send(ch) recv(ch)}
以上就是简单易懂的Go语言教程,希望能对读者有所帮助。在实际开发中,建议多尝试使用Go语言的高并发和优秀性能特点,开发出更加高效、可靠的应用程序。
上一篇
11模块化开发详细指南下一篇
Golang的网络编程相关推荐