一起来学GO语言
一起学习GO语言
刘彦青-Yannis
这个作者很懒,什么都没留下…
展开
-
Go 语言基础——协程(goroutine)&共享内存线程安全
协程(goroutine)是更轻量级的线程 比Java中的线程效率更高 协程语法 go func() { //... }() 一旦主goroutine中的代码执行完毕,当前的Go程序就会结束运行,无论其他的 goroutine是否已经在运行了。 让主goroutine等待其它 goroutine: for i := 0; i < 10; i++ ...原创 2019-08-21 16:29:06 · 1666 阅读 · 0 评论 -
Go 语言基础—— 通道(channel)
通过通信来共享内存(Java是通过共享内存来通信的) 定义 func service() string { time.Sleep(time.Millisecond * 50) return "Done" } func AsyncService() chan string { retCh := make(chan string, 1)//创建一个容量...原创 2019-08-21 17:25:18 · 1075 阅读 · 0 评论 -
GO语言基础——优雅的进行程序测试
我们可以为Go程序编写三类测试,即:功能测试(test)、基准测试(benchmark),也称性能测试(example) 测试文件的约定 测试文件的主名称应该以被测试文件主名称为先导,并且以_test为后缀。例:demo.go 的测试文件名称应为demo_test.go。 一般情况下一个测试文件只给一个源码文件做测试,demo_test.go只测试demo.go文件。 测试文件与被测试文件应该放...原创 2019-08-21 13:54:41 · 346 阅读 · 0 评论 -
Go 语言基础——错误处理
学习目标 掌握错误处理 掌握自定义错误处理 掌握defer关键字的使用 错误处理 GO没有异常处理机制 Go语言引入了一个关于错误处理的标准模式,即error接口,该接口的定义如下:type error interface { Error() string } 实例 可以通过errors.New快速创建错误实例 errors.New("错误信息") ...原创 2019-08-19 11:06:44 · 360 阅读 · 0 评论 -
Go 语言基础——变量&常量的定义
go语言不支持隐式类型转换,别名和原有类型也不能进行隐式类型转换 go语言不支持隐式转换 变量 变量声明 var v1 int var v2 string var v3 [10]int // 数组 var v4 []int // 数组切片 var v5 struct { //定义结构体(Java中的实体类,自定义类型) f i...原创 2019-08-19 10:47:57 · 457 阅读 · 0 评论 -
Go语言基础篇(5) —— Go语言的结构体与函数(行为|方法)
学习目标 掌握函数的定义与使用 函数 可以有多个返回值 参数都是值传递: slice, map, channel会有传引用的错觉 函数可以作为变量的值(和Java中的对象相似) 函数可以作为参数和返回值(和Java中的对象相似) 函数定义 package mymath //包 import "errors" //引入依赖 func Add(a int, b int) (r...原创 2019-08-09 18:31:56 · 981 阅读 · 0 评论 -
Go语言基础篇(4) —— Go语言常用的数据结构
学习目标 掌握常见数据类型的使用 布尔类型 var v1 bool //默认值为false v1 = true v2 := (1 == 2) // v2也会被推导为bool类型 数值类型 整型: int8、byte、int16、int、uint、uintptr等。 类型 长度(字节) 取值范围 int8 1 -128 ~ 127 uint8(即byte) 1 0 ~ ...原创 2019-08-09 17:23:14 · 454 阅读 · 0 评论 -
Go语言基础篇(3) —— Go语言循环&判断&选择语句
学习目标 掌握条件语句,选择语句,循环语句 条件语句 if a < 5 { return 0 } else { return 1 } 注意: 条件语句不需要使用括号将条件包含起来(); 无论语句体内有几条语句,花括号{}都是必须存在的; 左花括号{必须与if或者else处于同一行; 在if之后,条件语句之前,可以添加变量初始化语句,使用;间隔; 在有返...原创 2019-08-09 17:55:29 · 311 阅读 · 0 评论 -
Go语言基础篇(2) —— 编写第一个Go程序
创建文件hello_world.go package main //包,表名代码所在的包 import "fmt" //引入依赖 //main方法 func main(){ fmt.Println("Hello World!") } 运行指令: go run hello_world.go 编译指令: go build hello_world.go 应用程序入口语法说明 ...原创 2019-08-09 17:14:08 · 903 阅读 · 0 评论 -
Go语言基础篇(1) —— 环境搭建
Go语言不像Java语言,直接下载安装就行了: 下载安装Go语言: https://golang.google.cn/dl/ 选择你要现在的安装报 点击next安装: 二、安装IDE visual studio Code 、Atom、 idea都支持Go给idea 安装 go插件 验证go是否正常安装: go version ...原创 2019-08-09 17:11:31 · 937 阅读 · 0 评论 -
Go 语言基础——init函数
package Series import "fmt" func init() { fmt.Println("init1") } func init() { fmt.Println("init2") } func Square(n int) int { return n * n } func GetFibonacciSerie(n int) []int {...原创 2019-08-19 10:18:48 · 486 阅读 · 0 评论 -
Go 语言基础——package&依赖管理
依赖语法 /* 格式: import xxx/xxx/package值 注意根目录是src */ //方式一: import testting //方式二: 可以依赖多个包 import ( "testing" ) //方式三: 也可以给package起个别名,直接用别名调用包的函数 import ( t "testing" ) 1. g...原创 2019-08-19 10:22:27 · 390 阅读 · 0 评论