Go语言中文网 为您找到相关结果 55

golang 实现 类似lua中的coroutine

golang 中的 channel,它可以保存函数上下文,于是我基于此做了个 函数式的简单版协程 源码如下: ```go package main import ( "fmt" "runtime" "time" ) func main() { // 使用一个核 runtime.GOMAXPROCS(1) var coroutine = func(cbs func(func(int) int)) func(int) int { var sign chan func(int) int = make(chan func(int) int) var run func(int) int go func(cb...阅读全文

【独家】技术人到底应不应该写作?

阅读本文大概需要 4.0 分钟。日前,GOTV 采访到了『就要学习 Go 语言』系列文章的作者 - Seekload,来看看他的专访! 一、你是什么时候开始在公众号上写作的?写作的初衷是什么?18 年 11 月份的时候,自己慢慢意识到写作的重要性,就尝试着写文章,第一篇文章是在 11 月 15 号发布的,主题是著名的《Hello World》。目前,跟 Golang 相关的技术文章比较多些,也会有一些自己感想的文章。当时的初衷也很简单,只是想把自己学到的东西做个记录。后来才想着公开,一是文章公开之后,免不了有人会看,也会指出文章不足之处,这样既能检验自己的学习成果,又能提高自己的写作水平;二来,如果文章能够帮助到别人就更好了,事实上,也是这样的!既然好处这么多,干嘛不去做!二、你是如何考虑技...阅读全文

排序算法-归并排序、堆排序、插入排序、选择排序、冒泡排序 golang

1.冒泡排序(Bubble Sort) 冒泡排序也叫做起泡排序 执行流程 1 从头开始比较每一对相邻元素,如果第1个比第2个大,就交换它们的位置 ✓ 执行完一轮后,最末尾那个元素就是最大的元素 2 忽略 1 中曾经找到的最大元素,重复执行步骤 1,直到全部元素有序 for end := len(this.Array) - 1; end > 0; end-- { for begin := 1; begin <= end; begin++ { if this.ComWithIndex(begin, begin-1) < 0 { this.Swap(begin, begin-1) } } } 冒泡排序 – 优化1 如果序列已经完全有序,可以提前终止冒泡排序,相当于提前进行终止 for end :=...阅读全文

博文 2020-04-23 10:32:52 SteveKwok

Json and Go

Reference https://blog.go-zh.org/json-a... Encoding Encode的基本用法是 package main import ( "encoding/json" "fmt" "os" ) type Message struct { Name string Body string Time int64 } func main() { message := Message{"Tom", "Hello", 1294706395881547000} b, err := json.Marshal(message) if err != nil { fmt.Fprintf(os.Stderr, "Failed to Marshal!") os.Exit(1) }...阅读全文

博文 2019-02-28 23:34:43 龙内cool

排序算法-归并排序、堆排序、插入排序、选择排序、冒泡排序 golang

作者说明:郭玉乐 yulekwok@gmail.com 1.冒泡排序(Bubble Sort) 冒泡排序也叫做起泡排序 执行流程 1 从头开始比较每一对相邻元素,如果第1个比第2个大,就交换它们的位置 ✓ 执行完一轮后,最末尾那个元素就是最大的元素 2 忽略 1 中曾经找到的最大元素,重复执行步骤 1,直到全部元素有序 for end := len(this.Array) - 1; end > 0; end-- { for begin := 1; begin <= end; begin++ { if this.ComWithIndex(begin, begin-1) < 0 { this.Swap(begin, begin-1) } } } 冒泡排序 – 优化1 如果序列已经完全有序,可以提...阅读全文

博文 2020-04-23 10:32:52 移动端技术