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

golang select 小结

select 介绍 从不同并发执行的协程中,获取数据可以用select来完成。select监听的多个通道,也可以用通道发送数值。 select { // 接收数据 case u:= <- ch1: ... // 发送数据 case v:= <- ch2: ... ... default: // no value ready to be received ... } select 基本用法 1、如果多个通道都阻塞了,会等待知道其中一个通道可以处理。 2、如果多个通道都可以处理,随机选取一个处理。 3、如果没有通道操作可以操作并且写了default语句,会执行:default(永远是可以运行的) 4、如果防止select堵塞,可以写default来确保发送不被堵塞,没有case的select就会...阅读全文

studygolang filter模块阅读小结

##Filter模块与Hanlder## Hanlder是一种已知类型的回调方法,由使用者提供,可以抽象出一个type func类型来接受这种方法 type HandlerFunc func(http.ResponseWriter, *http.Request) 然后给该方法添加一个方法用来在触发该方法的调用 func (f HandlerFunc) ServeHTTP(rw http.ResponseWriter, req *http.Request) { // 执行当前Route的FilterChain filterChain := CurrentRoute(req).FilterChain if filterChain != nil { ...阅读全文

初练算法,比较算法之美

作为一名coder,算法不仅要会懂会写,在保证结果正确的同时,还要求性能足够高,才称得上优秀的算法。 本文比较了本人用 golang 初练算法的一些 demo,以期不断进步,假以时日,写出更好的算法。 1. 求众数(在数组中出现次数大于 n/2 的元素) a. 本人写法: func majorityElement1(nums []int) int { n := len(nums) for i := 0; i < n; i++ { equalNum := 1 for j := 0; j < n; j++ { if nums[i] == nums[j] && i != j { equalNum++ } if equalNum > n/2 { return nums[i] } } } return...阅读全文

博文 2019-04-01 02:34:39 热爱coding的稻草

初练算法,比较算法之美

作为一名coder,算法不仅要会懂会写,在保证结果正确的同时,还要求性能足够高,才称得上优秀的算法。 本文比较了本人用 golang 初练算法的一些 demo,以期不断进步,假以时日,写出更好的算法。 1. 求众数(在数组中出现次数大于 n/2 的元素) a. 本人写法: func majorityElement1(nums []int) int { n := len(nums) for i := 0; i < n; i++ { equalNum := 1 for j := 0; j < n; j++ { if nums[i] == nums[j] && i != j { equalNum++ } if equalNum > n/2 { return nums[i] } } } return...阅读全文

博文 2019-04-01 00:34:39 热爱coding的稻草

go channel 理解

1、未使用go channelpackage main import ( "fmt" "time" ) func printer(s string) { for _, v := range s { fmt.Println(string(v)) time.Sleep(time.Millisecond * 3000) } } func person() { printer("hello") } func person2() { printer("world") } func main() { go person() go person2() for { } }d:\goprojects\src\day1\练习>go run main.go h w e o l r l l o d exit sta...阅读全文

博文 2019-07-23 10:03:13 xingzhehxiang