V2EX = way to explore
V2EX 是一个关于分享和探索的地方
现在注册
已注册用户请  登录
V2EX  ›  guonaihong  ›  全部回复第 12 页 / 共 23 页
回复总数  459
1 ... 8  9  10  11  12  13  14  15  16  17 ... 23  
@leonme httpie 是很香,只是受众比 curl 略低。
@YanwenSun 同道中人。我后面想玩个大的,实现大部分 curl 选项。
@ggicci 对于你的疑问,换种说话,标准库可以做很多事情。为啥还有这么多的库会出现补充它,不是说标准库不够好,而是做一件事太慢(非运行时,而是编码慢)。
你说的可以用标准库做,试想下下面的命令要你用 http 库最快要多长时间翻译成 go 代码。
```bash
curl -X POST url -d 'username=yourusername&password=yourpassword'
curl --request PUT url
curl -r 0-20000 -o myfile.png url
curl -F text=good -F voice=@./good.voice url
```
如果不在乎编码慢,我也不知道说啥了。如果在乎还有一例。

举个远古的例子(快与慢),c 语言为啥什么会代替汇编。大部分原因汇编相比 c 来说编码来说太慢。写个 i++,可能要从栈里移动到寄存器里,用 add 完成自加,mov 再移回去,一个简单的 i++都要撸这么多,试想 for 循环或者写一个函数,这谁吃得消,对吧。历史说过,快的不一定能完全替换慢的,但是快的大多数会流行。

最后想说:天下武功唯快不破。。。
@0o0O0o0O0o 对啊,是要用 go 解析 curl 命令的。
我们在讨论实现的细节有个分歧。
你是想用解析 curl---->生成 go 代码的方式。在#24 表达这种方式不太好实现。
目前倾向于使用 解析 curl---->生成*http.Request

现在不混乱了吧。
2020-03-15 19:29:42 +08:00
回复了 gtfkle 创建的主题 程序员 分享一下你读过的最好的技术文章
精通正则表达式,看完大呼过隐。
@ggicci 因果关系是,是先有 curl 的命令(别人提供的),想快速用 go 发射出去。
@zthxxx 谢谢啦,刚刚看了源代码,这个项目实现的 curl 选项也就 1,2 个,完整的 curl 选项应该是 175 个。这还不算-d 选项目后面还可以跟五花八门的配置项。
最后 curlie 和 4 月 1 日要写的 pcurl 不矛盾,curlie 是命令行工具,pcurl 是库。简单地说 pcurl 可以实现 curlie,反过来不行。
@venster 哈哈,但是这违背马克思主义哲学啊。
@0o0O0o0O0o 这个问题也想过,如果想覆盖 curl 那五花八门的选项。使用生成代码的方式很难做完善。可组合情况太多。。。
@ETiV 其实想问怎么把 curl 命令转成 go 的代码?是指每遇到一种 curl 命令就手写完成同样请求的 go 代码?
@watzds 一般都有动态参数,如何理解?
一般都有动态参数,如何理解?
@23571113 libcurl 包装会丢掉 go 强大的交叉编译能力,go 的代码很容易跑在 mac, linux, windows, freebsd 上。
引入 gcc/g++就头疼了。
@ETiV 没懂 '把 curl 命令改为 curl2go' 这句是怎么实施的。
@scukmh 是指看到 curl 命令之后,直接用代码撸类似请求?
@ospider 谢谢,刚刚看过了。https://mholt.github.io/curl-to-go/ 解析 curl multipart 格式有问题。
可以用下面的命令 curl -F text=good -F voice=good.pcm www.qq.com 试下就知道。
2020-03-15 09:19:58 +08:00
回复了 Flands 创建的主题 Go 编程语言 go 项目如何定义全局 config 比较好?
也可以试下 https://github.com/guonaihong/clop
只要会定义结构体就行。
2020-03-14 23:14:23 +08:00
回复了 leolyq 创建的主题 Go 编程语言 golang 的一个问题
@lizon 第一次见这种方法,感觉还挺好玩的。在固定 json 里面增删未知字段,我一般是转成 map 操作,Unmarshal 成 map[string]interface{},map["add"]=xxoo,就是增字段。delete(map, "key")。最后 marshal 下 ok 完工。
2020-03-14 09:18:14 +08:00
回复了 leolyq 创建的主题 Go 编程语言 golang 的一个问题
是这个意思吗,结构体里面有很多固定的成员。
S 里面有可变的 json 成员。想把 S 中的可变成员变成和结构体 key 变得在一层 json 对象?
如果是可以先这么玩:
S 成员先不赋值。json.Marshal 得到 json 字符串。再 json.Unmarshal 到 map[string]interface{}
你现在已经有两个 map[string]interface{}了。for range 合并下,合并后的 map["rid"] = "xxx"
最后 json.Marshal 合并后的 map 就是你想要的 json 字符串了。
2020-03-11 21:54:33 +08:00
回复了 xiadada 创建的主题 Go 编程语言 Go 改一行文件也要编译一次要 30s
你这至少要 100w 行代码编译吧?
1 ... 8  9  10  11  12  13  14  15  16  17 ... 23  
关于   ·   帮助文档   ·   博客   ·   API   ·   FAQ   ·   实用小工具   ·   6417 人在线   最高记录 6679   ·     Select Language
创意工作者们的社区
World is powered by solitude
VERSION: 3.9.8.5 · 25ms · UTC 02:53 · PVG 10:53 · LAX 19:53 · JFK 22:53
Developed with CodeLauncher
♥ Do have faith in what you're doing.