Go语言

73 阅读4分钟

1.什么是Go语言

Go语言,也被称为Golang,是由Google开发的一种静态类型的、编译式的、并发型的、垃圾回收的语言。 2. Go语言的实际应用案例 包括但不限于: (1)云计算和容器化:Kubernetes、Docker等 网络服务:Google的Search、YouTube,Cloud等; (2)大数据处理:Apache Flink、Apache Beam等; (3)游戏开发:Unity引擎等; (4)操作系统开发:Google的Fuchsia操作系统等; 3.基础语法 (1)Hello World package main import( “fmt” ) func main(){ fmt.Println(“hello world”) }

Go 程序是通过 package 来组织的。

只有 package 名称为 main 的源码文件可以包含 main 函数。

一个可执行程序有且仅有一个 main 包。

通过 import 关键字来导入其他非 main 包。

可以通过 import 关键字单个导入:

import "fmt" import "io" 也可以同时导入多个:

import ( "fmt" "math" )

(2)变量声明

Go 语言中变量的声明必须使用空格隔开

var 变量名 变量类型 = 初始化值 var a=“initial” 变量为字符串 var b,c int=1,2 变量为整型,多重赋值时,变量的左值和右值按从左到右的顺序赋值。多重赋值在Go语言的错误处理和函数返回值中会大量地使用。 var d=true 变量为布尔型 var e float64 浮点型 短变量声明并初始化: var 的变量声明还有一种更为精简的写法,例如:hp := 100 这是Go语言的推导声明写法,编译器会自动根据右值类型推断出左值的对应类型。 注意:由于使用了:=,而不是赋值的=,因此推导声明写法的左值变量必须是没有定义过的变量。若定义过,将会发生编译错误

(3)选择结构 (1)switch语句 switch 语句用于基于不同条件执行不同动作。 switch后变量名无括号,case中不加break,Go只运行选定的 case,而非之后所有的 case,Go 自动提供每个 case 后面所需的 break 语句, 除非以 fallthrough 语句结束,否则分支会自动匹配直终止。且可以使用任意变量类型,当判断较多时可用switch完全替代if else func main() { fmt.Print("Go runs on ") switch os := runtime.GOOS; os { case "darwin": fmt.Println("OS X.") case "linux": fmt.Println("Linux.") fallthrough//不加则后面不会运行直接break default: fmt.Printf("%s.\n", os) } //Go runs on Linux. //linux. }

(2)if语句 由一个布尔表达式后紧跟一个或多个语句组成。 if 条件{ …… } if 语句 后可以使用可选的 else 语句, else 语句中的表达式在布尔表达式为 false 时执行。

if 条件{ …… }else{ …… }……

if后面必须直接跟大括号

(4)循环结构 for循环

for 里面的三段任意一段都能省略。 for j:=7;j <9;j++{ …… } break 语句 经常用于中断当前 for 循环或跳出 switch 语句。

// 在for循环中使用break for i := 0; i < 10; i++ { if i == 5 { break // 当 i 等于 5 时跳出循环 } fmt.Println(i) }

continue 语句 跳过当前循环的剩余语句,然后继续进行下一轮循环。 package main

import "fmt"

func main() { /* 定义局部变量 */ var a int = 10

/* for 循环 / for a < 20 { if a == 15 { / 跳过此次循环 */ a = a + 1; continue; } fmt.Printf("a 的值为 : %d\n", a); a++;
}
}

goto 语句 将控制转移到被标记的语句。 (5)切片 slice长度不固定,类型 []T 表示一个元素类型为 T 的切片。用make创建,append时自动扩容,可像python中切片一样截取。切片通过两个下标来界定,即一个上界和一个下界,二者以冒号分隔,半开区间,包括第一个元素,但排除最后一个元素。切片的本质本质是先创建一个数组,再构建一个引用它的切片。切片的长度就是它所包含的元素个数,切片的容量是从它的第一个元素开始数,到其底层数组元素末尾的个数。切片 s 的长度和容量可通过表达式 len(s) 和 cap(s) 来获取。 用内建函数make创建切片,make 函数会分配一个元素为零值的数组并返回一个引用它的切片。

a := make([]int, 5) // len(a)=5 b := make([]int, 0, 5) // len(b)=0, cap(b)=5 b = b[:cap(b)] // len(b)=5, cap(b)=5