一、简介
Go语言(也称为Golang)是一种开源编程语言,由Google于2007年开始开发,并在2009年正式发布。它的设计目标是提供简洁、高效、可靠的软件开发方式。
二、Go语言的优势
-
简洁易学:Go语言的语法相对简单,易于学习和理解。它摒弃了许多复杂的特性和语法糖,使得代码更加清晰和易于维护。
-
并发支持:Go语言内置了轻量级的并发模型,称为goroutine和channel。这使得编写并发程序变得非常简单,可以有效地利用多核处理器。
-
高效性能:Go语言通过使用垃圾回收机制、即时编译和优化等技术,具有出色的运行时性能。它还提供了原生的并发支持,可以轻松处理大规模并发任务。
-
内置工具:Go语言附带了许多内置的工具,如格式化工具、测试工具和性能分析工具等,方便开发者进行代码管理和性能优化。
-
跨平台:Go语言可以在多个操作系统上运行,包括Windows、Linux和Mac等。这使得开发人员可以更方便地编写跨平台的应用程序。
-
强大的标准库:Go语言拥有丰富而强大的标准库,涵盖了网络编程、文件操作、加密、数据库等多个领域,可以帮助开发者快速构建各种类型的应用程序。
三、Go语言基础语法
1、数据类型
基本数据类型
- 整数类型:int、int8、int16、int32、int64、uint、uint8、uint16、uint32、uint64。
- 浮点数类型:float32、float64。
- 复数类型:complex64、complex128。
- 布尔类型:bool。
- 字符串类型:string。
- 字节类型:byte(uint8的别名)。
- 字符类型:rune(int32的别名,用于表示Unicode字符)。
复合数据类型
- 数组类型:用于存储具有相同类型的固定长度元素序列。
- 切片类型:动态数组,可以根据需要自动扩展或缩小。
- 映射类型:键值对的集合。
- 结构体类型:自定义的复合数据类型,可以包含多个字段。
- 接口类型:一组方法签名的集合,用于实现多态性。
- 函数类型:将函数作为值进行传递和使用的类型。
- 通道类型:用于在并发编程中进行协程间的通信。
2、变量与常量声明
变量
//声明指定类型变量
var a int
// 声明一个整数变量并初始化为30
var age int = 30
//声明变量并赋值,进行自动类型推断
var name = "tom"
//:= 表示声明的同时赋值,=只是赋值功能
num := 100
// 实现交换m,n的值
m := 2
n := 3
m,n = n,m
// a, b, c 同时声明
var a, b, c int
// a,b, c 同时赋值
a,b,c = 1,2,3
常量
//常量在声明时就赋值,之后不可改变
const total int = 1000
const name = "jerry"
3、if-else语句
if 1 == 1 {
fmt.Println(true)
}else{
fmt.Println(false)
}
if num := 10; num > 5 {
fmt.Println("num大于10")
}
4、switch语句
//switch后指定表达式
day := 3
switch day {
case 1: fmt.Println("Monday")
case 2: fmt.Println("Tuesday")
case 3: fmt.Println("Wednesday")
case 4: fmt.Println("Thursday")
case 5: fmt.Println("Friday")
case 6: fmt.Println("Saturday")
case 7: fmt.Println("Sunday")
default: fmt.Println("Invalid day")
}
//switch后不指定表达式,类似switch true,而是在case里判断
age := 18
switch {
case age < 0:
fmt.Println("Invalid age")
case age < 18:
fmt.Println("You are a minor")
default:
fmt.Println("You are an adult")
}
5、for循环
//去掉break就是死循环
for {
fmt.Println("11")
break
}
//只能用i++,不能使用++i
for i := 0; i < 5; i++ {
fmt.Println(i)
}
var j int = 0
for j <= 3 {
fmt.Println(j)
j++ //golang中只提供了j++, ++j是非法的
}