网页设计 网站维护,wordpress 主机郑州,网站推广专家,专业类搜题软件Go语言#xff08;也称为Golang#xff09;是一种由Google开发的编程语言#xff0c;以其简洁、高效和并发支持而闻名。从本文开始#xff0c;将带你快速完成Go语言的学习#xff0c;如果你之前有过Java或者C语言的基础#xff0c;学习它将很容易#xff0c;本教程忽略环…Go语言也称为Golang是一种由Google开发的编程语言以其简洁、高效和并发支持而闻名。从本文开始将带你快速完成Go语言的学习如果你之前有过Java或者C语言的基础学习它将很容易本教程忽略环境搭建步骤直奔主题。
1. 程序结构
包声明每个Go程序都从package声明开始通常是package main。导入包使用import关键字导入其他包。函数使用func关键字定义函数。主函数程序的入口点是func main()。
package main
import fmt
func main() {fmt.Println(Hello, World!)
}2. 变量和常量
变量声明使用var关键字声明变量可以指定类型或使用类型推断。短变量声明在函数内部可以使用:进行短变量声明。常量使用const关键字声明常量。
var a int 10
b : 20
const c 303. 数据类型
基本类型整数int, 浮点float64, 布尔bool, 字符串string复合类型数组array, 切片slice, 键值对映射表map, 结构体struct, 接口interface注意类型都是写在变量名后面这和很多其他强类型语言不同
var i int 10
var f float64 3.14
var s string Hello
var b bool true4. 控制结构
条件语句if, else if, else。循环语句for循环Go中没有while循环。选择语句switch。
if a b {fmt.Println(a更大)
} else if a b {fmt.Println(b更大)
} else {fmt.Println(a和b相等)
}for i : 0; i 5; i {fmt.Println(i)
}switch day {
case 1:fmt.Println(今天是星期一)
default:fmt.Println(今天不是星期一)
}5. 函数
函数定义使用func关键字定义函数可以有多个参数和返回值。多返回值Go支持函数返回多个值要划重点。匿名函数可以定义匿名函数并赋值给变量。
func add(x int, y int) int {return x y
}func swap(x, y string) (string, string) {return y, x
}add : func(x, y int) int {return x y
}6. 错误处理
错误类型Go使用error类型来处理错误。错误返回函数可以返回error作为最后一个返回值。
func divide(a, b int) (int, error) {if b 0 {return 0, fmt.Errorf(除数不能为0)}return a / b, nil
}7. 并发
协程 Goroutine [ɡəʊruːˈtiːn]使用go关键字启动一个并发执行的函数相当于轻量级线程。Channel使用chan关键字创建通道用于在Goroutine之间传递数据。
go func() {fmt.Println(这是并发运行的)
}()ch : make(chan int)
go func() {ch - 42
}()
value : -ch8. 包和模块
包Go程序由包组成包可以包含多个文件。模块使用go mod管理依赖和版本。
import fmt
import math9. 指针
指针类型使用*表示指针类型使用获取变量的地址。
var p *int
i : 42
p i
fmt.Println(*p) // 输出4210. 结构体和方法
结构体使用type和struct关键字定义结构体。方法可以为结构体定义方法。注意和Java、C#的编写习惯不同一个结构体的方法并不会把代码写在结构体的定义代码段上而是类似于挂载的方式挂到结构体上。
type Person struct {Name stringAge int
}func (p Person) SayHello() {fmt.Printf(你好我的名字是 %s\n, p.Name)
}11. 接口
接口定义使用interface关键字定义接口。接口实现类型通过实现接口的方法来满足接口并非像Java和C#那样显式的声明结构体与接口的依赖关系所以和上一段的写法没什么本质的区别。
type Speaker interface {Speak() string
}type Dog struct {Name string
}func (d Dog) Speak() string {return 旺!
}12. 错误处理
错误类型Go使用error类型来处理错误。错误返回函数可以返回error作为最后一个返回值。
func divide(a, b int) (int, error) {if b 0 {return 0, fmt.Errorf(除数不能为0)}return a / b, nil
}13. 标准库
fmt格式化输入输出。math数学函数。os操作系统交互。net/httpHTTP客户端和服务器。
fmt.Println(Hello, World!)14. 注释
单行注释使用//。多行注释使用/* ... */。
// 这是一个单行注释/*
这是一个
多行注释
*/