V2EX = way to explore
V2EX 是一个关于分享和探索的地方
现在注册
已注册用户请  登录
V2EX  ›  guonaihong  ›  全部回复第 19 页 / 共 23 页
回复总数  459
1 ... 11  12  13  14  15  16  17  18  19  20 ... 23  
2019-10-10 21:07:07 +08:00
回复了 guonaihong 创建的主题 程序员 golang 字符串技巧分享(1)--分割
@reus 可以可以。
2019-10-10 18:34:18 +08:00
回复了 guonaihong 创建的主题 程序员 golang 字符串技巧分享(1)--分割
@Biwood 这思路挺好。可以把-分割符换成不可见字符\x000(数字 0)
2019-10-10 18:24:27 +08:00
回复了 guonaihong 创建的主题 程序员 golang 字符串技巧分享(1)--分割
@zhuzeitou 是的。马上改下。
2019-10-09 12:35:22 +08:00
回复了 guonaihong 创建的主题 程序员 golang 流式 http client---收集需求
@spidermansam0718 有一些,大部分都不维护了。
2019-10-08 22:16:57 +08:00
回复了 guonaihong 创建的主题 程序员 golang 流式 http client---收集需求
@paulw54jrn 哈哈。。。
2019-10-08 18:42:21 +08:00
回复了 guonaihong 创建的主题 程序员 golang 流式 http client---收集需求
@lspvic 不敢不敢,lspvic 兄太抬举了。只是 go 爱好者,谈不上大神。。。
2019-10-05 13:39:24 +08:00
回复了 guonaihong 创建的主题 Go 编程语言 golang “非主流”技巧 分享(1) --生成 c 可调用代码
@banxi1988 大,golang 语言特色。刚刚的代码编译的库大约 3.4MB
2019-10-04 21:06:53 +08:00
回复了 guonaihong 创建的主题 Go 编程语言 golang 常见“坑”(3)-switch
@reus reus 兄所说不对。。。先不说本人写过 c/c++。。。为什么分享这些帖子,只是看到有童鞋踩过坑,想让更多的童鞋不要入此坑。。。此“自己”特有说法也不成立。
2019-10-04 20:31:23 +08:00
回复了 guonaihong 创建的主题 Go 编程语言 golang 常见“坑”(3)-switch
@codehz 听 codehz 兄一句话,感觉很受启发。
2019-10-04 20:00:53 +08:00
回复了 guonaihong 创建的主题 Go 编程语言 golang 常见“坑”(3)-switch
@lincanbin 恩。。。
2019-10-04 19:57:56 +08:00
回复了 guonaihong 创建的主题 Go 编程语言 golang 常见“坑”(3)-switch
@Daming 其实我只是奇怪,在 go 里面 switch 是不需要写 break 的,假如用户写 break,目的很明确都是作用于 for。从实现上来看很容易和用户写的 break 作出区分。
2019-10-04 19:52:05 +08:00
回复了 guonaihong 创建的主题 Go 编程语言 golang 常见“坑”(3)-switch
@frye go switch 不需要写 break 还是挺迷惑的。不像 c 要时刻写 break,能记得 break 的作用范围。
2019-10-04 19:42:11 +08:00
回复了 guonaihong 创建的主题 Go 编程语言 golang 常见“坑”(3)-switch
@lance6716 “坑”加双引号,只是想说下,这个设计和大多数人的预期不一样。
2019-10-02 21:51:37 +08:00
回复了 guonaihong 创建的主题 Go 编程语言 golang 常见坑(1)-select
@heimeil 如果 chan 是带缓冲的,并且因为某些原因不能修改为无缓冲的,可以用下面的该法。你的代码我看了,用两层 for 循环的做法,本质还是想知道 chan 有没有空。直接用个判断就行。

```go
ackage main

import (
"context"
"fmt"
"time"
)

func main() {
ctx, cancel := context.WithCancel(context.Background())

data := make(chan int, 10)

go func() {
for i := 0; i < 10; i++ {
data <- i
}
cancel()
fmt.Println("cancel")
}()

for {
select {
case <-ctx.Done():
if len(data) == 0 {
fmt.Println("Done")
return
}
case v := <-data:
fmt.Printf("v = %d\n", v)
}
}
}

```
2019-10-02 21:40:19 +08:00
回复了 guonaihong 创建的主题 Go 编程语言 golang 常见坑(1)-select
@reus 感谢分享。
2019-10-02 21:39:55 +08:00
回复了 guonaihong 创建的主题 Go 编程语言 golang 常见坑(1)-select
@such 和 such 兄想得相反,我倒是不觉得滥用。很多时候一个技术被滥用是带来了性能退化,这里没有性能退化。再者 context 源码里面也是 close chan 再实现通知的。和自己 close chan 来没啥区别。
2019-10-02 16:49:10 +08:00
回复了 guonaihong 创建的主题 Go 编程语言 golang 常见坑(1)-select
@znood 你是想说,如果不用无缓冲 chan。用超时退出?
2019-10-02 15:59:10 +08:00
回复了 guonaihong 创建的主题 Go 编程语言 golang 常见坑(1)-select
@znood 这个例子里面不需要 time.After。data chan 消费完。生产者调用 cancel,这时候消费者的 case <- ctx.Done() 就可以返回了。
2019-10-02 14:30:49 +08:00
回复了 guonaihong 创建的主题 Go 编程语言 golang 常见坑(1)-select
@heimeil 兄弟,我假期用的这台电脑不能翻墙。可否贴下代码,学习下。
2019-10-02 14:23:13 +08:00
回复了 guonaihong 创建的主题 Go 编程语言 golang 常见坑(1)-select
@znood 你没有明白代码。无缓存 chan 是生产者,消费者同步的。data<-999 写进入 并且返回了。代表消费者已经消费调了。这时候调用 cancel 是安全的。
1 ... 11  12  13  14  15  16  17  18  19  20 ... 23  
关于   ·   帮助文档   ·   博客   ·   API   ·   FAQ   ·   实用小工具   ·   2932 人在线   最高记录 6543   ·     Select Language
创意工作者们的社区
World is powered by solitude
VERSION: 3.9.8.5 · 21ms · UTC 12:27 · PVG 20:27 · LAX 05:27 · JFK 08:27
Developed with CodeLauncher
♥ Do have faith in what you're doing.