千锋教育-做有情怀、有良心、有品质的职业教育机构

简单易懂的Go语言教程

Go语言是一种由Google开发的编程语言,它的出现主要是为了解决C++和Java的缺点,具有高并发能力和优秀的性能,同时也具有简单易懂、语法简洁等特点,被广泛应用于云计算、容器化等领域。
本篇文章将介绍Go语言的基础语法以及常用的库函数和并发操作。
一、基础语法
1. 变量
在Go语言中,变量必须先声明后使用,可以使用var或:=关键字来进行变量声明。其中:=是一种简写形式,可以同时完成变量的声明和赋值。
示例代码:
var i int  // 声明变量i,类型为inti = 10     // 给变量i赋值为10j := 20   // 简写形式,声明变量j并赋值为202. 数据类型
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的网络编程 
                相关推荐