V2EX = way to explore
V2EX 是一个关于分享和探索的地方
现在注册
已注册用户请  登录
V2EX  ›  liulaomo  ›  全部回复第 4 页 / 共 5 页
回复总数  90
1  2  3  4  5  
2019-05-31 19:22:28 +08:00
回复了 jykid 创建的主题 Go 编程语言 Golang 编译成 webassembly 自带 GC,文件体积过大怎么解决
玩 wasm 还得 C++。C++ wasm 工具链成熟的多
2019-05-28 20:51:37 +08:00
回复了 gramyang 创建的主题 Go 编程语言 一个和 go 断言有关的神奇写法
@gramyang
在线版打不开的话,可以浏览本地版: https://github.com/golang101/golang101
2019-05-28 20:50:09 +08:00
回复了 gramyang 创建的主题 Go 编程语言 一个和 go 断言有关的神奇写法
看代码,这里的 p 只能是一个*tcpSyncConnector 或者*tcpConnector 类型的值,而这两个类型都内嵌了 peer.CoreProcBundle。peer.CoreProcBundle 是有 GetBundle() *CoreProcBundle 这个方法的。所以此类型断言是不会 panic 的。
2019-05-28 20:09:17 +08:00
回复了 gramyang 创建的主题 Go 编程语言 一个和 go 断言有关的神奇写法
@gramyang
p 虽没有 GetBundle 方法,但是它此时的动态值有此方法即可。
详见: https://gfw.go101.org/article/interface.html#reflection

出现这种写法一般属于设计上没做好,但有需要一定时间才能完善的暂时之举。
但是,遍历一个字符串得到的是 rune 而不是它的 byte 元素,这确实是一个例外 https://gfw.go101.org/article/exceptions.html#container-elements-iteration

Go 里面这样的细节上例外很多,但是 Go 在宏观设计上的一致性比较高,例外很少。
@vencent

> 而 go 语言的 len 函数对于其他内置类型来说获取的是容器的长度(即元素的个数),而对于 string 类型获取的却是字节数。这种奇怪的不一致我认为是它的设计问题。

这是一个误解。Go 种的字符串应该被看作是一个只读字节切片。也就是说,字符串(做为容器)的元素类型为 byte。
遍历 byte 的时候,使用 for i, b := range []byte(s) {} 即可(标准编译器对[]byte(s)做了优化,不会赋值底层字节),或者使用 for i := 0; i < len(s); i++ { b := s[i]; ...}。
遍历 rune 的时候,使用 for i, r := range s。

这么设计虽然牺牲了一点一致性,但达到了两全。
2019-05-24 06:55:04 +08:00
回复了 Weixiao0725 创建的主题 Go 编程语言 进来看几个 Go 的 syntax 代码段吧
@wonderingray

其实 sumbdb 只能放置一个 module 发布之后被修改,但是不能防止一个 module 含有恶意代码。所以只能一定程度上防止恶意行为。
@wonderingray

> 实际上 GOSUMDB 本身(比如 sum.golang.org )也是可以被 GOPROXY 所代理的

这个倒没注意。我再研究一下。
@cissoid

> GOPROXY 代理, 私有 repo 的包拉不下来.

设置 GONOPROXY=private.domain/* ?
@insert000 @notreami 设置 GOPROXY 之后就和 maven 一样了。国内应该很快会出现一些 goproxy 服务。

不过最好还是自行解决 https_proxy 代理问题为好。

> 有的包开了代理也下载不了

这个应该是代理的问题。

另外,从 Go 1.13 开始,哈希检查也可能会对一些 go 命令的响应时间有所影响。希望 sum.golang.org 能够在国内访问,不然国内的 goproxy 服务没人敢用。我们可以将 GONOSUMDB 环境变量设为 off 来关闭哈希检查。
@lhx2008 “ import GOPATH 里面的包” 和 “ import 模块中的包” 两者时不兼容的
2019-05-19 23:28:09 +08:00
回复了 liulaomo 创建的主题 Go 编程语言 2019, Go GUI 项目爆发的一年?
@p1gd0g 看代码还是相当有水准的。要是个库的话,这篇文章就准备收录的
2019-05-19 12:34:33 +08:00
回复了 liulaomo 创建的主题 Go 编程语言 2019, Go GUI 项目爆发的一年?
@LSvKing 好几个绑定都是相当成熟的,包括 qt, sdl, glfw, gtk2, imgui, nuklear
2019-05-19 12:14:31 +08:00
回复了 liulaomo 创建的主题 Go 编程语言 2019, Go GUI 项目爆发的一年?
@p1gd0g 项目地址有吗?
2019-05-19 12:01:01 +08:00
回复了 liulaomo 创建的主题 Go 编程语言 2019, Go GUI 项目爆发的一年?
@hotsymbol geoy, guo, go-skia 都是近两三个月出的
2019-05-13 23:55:15 +08:00
回复了 lueffy 创建的主题 Go 编程语言 A Tour of Go-Pointer receivers 一点疑问
@lueffy 反过来也是可以的

package main

import (
"fmt"
"math"
)

type Vertex struct {
X, Y float64
}

func (v Vertex) Abs() float64 {
return math.Sqrt(v.X * v.X + v.Y * v.Y)
}

func main() {
v := Vertex{3, 4}
fmt.Println((&v).Abs())
}

因为编译器给指针类型*Vertex 隐式声明了一个同名方法。https://gfw.go101.org/article/method.html#implicit-pointer-methods
@SimonDing 说的对。

或者如下手动,其实和 for v := range c { use(v) } 是等价的。
for {
v, closed := <-c;
if closed (
break
}
// use v ...
}
2019-05-09 09:56:05 +08:00
回复了 liulaomo 创建的主题 Go 编程语言 Go 语言中关于断行规则的一个细节
@gramyang

> go 语言的大括号是不能像 c++那样换行写的。因为 go 默认给每行语句添加一个;

我感觉这篇文章白写了, ;D

本文重在阐述断行规则,;)
=> 很多人印象中的规则“代码块的开大括号不能被放在下一行”其实只是一个通常的而非普适的规则。
1  2  3  4  5  
关于   ·   帮助文档   ·   博客   ·   API   ·   FAQ   ·   实用小工具   ·   1383 人在线   最高记录 6679   ·     Select Language
创意工作者们的社区
World is powered by solitude
VERSION: 3.9.8.5 · 19ms · UTC 16:50 · PVG 00:50 · LAX 08:50 · JFK 11:50
Developed with CodeLauncher
♥ Do have faith in what you're doing.