V2EX = way to explore
V2EX 是一个关于分享和探索的地方
现在注册
已注册用户请  登录
V2EX  ›  wqtacc  ›  全部回复第 1 页 / 共 2 页
回复总数  33
1  2  
35 天前
回复了 Grocker 创建的主题 Go 编程语言 这段 go 代码始终理解不到
```go
package main

import "fmt"

// Greeting 定义为一个函数
type Greeting func(name string) string

func (g Greeting) say(n string) {
// g 调用函数自身
s := g(n)
fmt.Println(s)
}

func english(name string) string {
return "Hello, " + name
}

func main() {
// english 函数与 Greeting 签名相同,进行强转
greet := Greeting(english)
greet.say("World")

// 完整的长生命方法, 同时去除 english 的干扰项
var greet2 Greeting = func(s string) string {
return "Hello, " + s
}
fmt.Println(greet2("World!"))
greet2.say("World!")
}

```
35 天前
回复了 Grocker 创建的主题 Go 编程语言 这段 go 代码始终理解不到
```go
package main

import "fmt"

// Greeting 定义为一个函数
type Greeting func(name string) string

func (g Greeting) say(n string) {
// g 调用函数自身
s := g(n)
fmt.Println(s)
}

func english(name string) string {
return "Hello, " + name
}

func main() {
// english 函数与 Greeting 签名相同,进行强转
greet := Greeting(english)
greet.say("World")


var greet2 Greeting = func(s string) string {
return "Hello, " + s
}
fmt.Println(greet2("World!"))
greet2.say("World!")
}

```
像下面这样使用

```go
func left(ctx context.Context) {
ctx = right(ctx)
value := ctx.Value("key")
fmt.Println(value)
}

func right(ctx context.Context) context.Context {
return context.WithValue(ctx, "key", "value")
}
```
github 上找前几个实现,大多都对内存分配,key 、value 存储结构,锁的粒度做了优化
能重新再 debian 下编译打包吗
不折腾,用 float64
转岗或者换个研发工作,你会快速进步
275 天前
回复了 easylee 创建的主题 职场话题 新来的同事与组长开喷
钉钉之类的文字交流,更多是结果传递,你们就没经常遇到一两句,三五句文字越来越说不清楚,直接电话沟通的吗?
感觉现在的实现,如果是多个客户端,加锁时的 id 怎么分配的,冲突就展期,防止不了冲突,释放锁也是一样的
2023-04-03 23:20:38 +08:00
回复了 hentailolicon 创建的主题 Go 编程语言 Golang 怎么 Cancel 一个非循环子协程
@hentailolicon 正常是这么做的,一般会在循环中加入检查 ctx.Done, 比如说在从流中读取数据,读取下一条数据等等,像 lysS 说的将任务实现为单一功能的小任务;
2023-04-02 21:15:02 +08:00
回复了 hentailolicon 创建的主题 Go 编程语言 Golang 怎么 Cancel 一个非循环子协程
传递上下文,在需要的位置使用,比如在这里避免脏数据的话,向 chan 写数据之前的某个地方检查上下文是否超时或者已经 canceled
```go
select {
case <- ctx.Done():
default:
}
2023-03-23 21:48:13 +08:00
回复了 frank1256 创建的主题 程序员 公司给 6k 整机预算换啥笔记本?
thinkbook14+或者 16+可以考虑一下
2022-12-28 19:59:38 +08:00
回复了 1800x 创建的主题 Go 编程语言 Go 有没有什么开源库,给 context 预留 Value 的坑?
最后不这么用,context 传递的参数一般只用来做协程控制、超时控制,状态跟踪等,当然一层层的封装用相同的 key 传递 value ,下一步是能取到的
2022-06-02 00:01:36 +08:00
回复了 cocong 创建的主题 Go 编程语言 诡异的执行结果,有哪位 Go 大神来给瞧瞧?
```go
package main

func main() {
chs := []chan struct{}{
make(chan struct{}), make(chan struct{}), make(chan struct{}),
}
next := make(chan struct{})
for i := 0; i < len(chs); i++ {
go func(i int) {
for range chs[i] {
b := byte('A' + i)
print(string(b))
if i != len(chs)-1 {
chs[i+1] <- struct{}{}
} else {
next <- struct{}{}

}
}
}(i)
}
for i := 0; i < 10; i++ {
chs[0] <- struct{}{}
<-next
}
}
```
2022-06-01 01:15:46 +08:00
回复了 cocong 创建的主题 Go 编程语言 诡异的执行结果,有哪位 Go 大神来给瞧瞧?
i = i+1 不是原子操作,也没有锁,每个 goroutine 执行时随机的
2021-11-18 23:52:57 +08:00
回复了 TossPig 创建的主题 程序员 被客户告知 HTTP 的 PUT 请求不安全,甩锅给我们要求整改
遇到这种不讲道理的,写啥承诺,中间件加一个"X-Http-Method-Override",改成 POST
2021-10-14 21:20:25 +08:00
回复了 heeeeeem 创建的主题 程序员 真正的跨域单点登录是怎样的? cas 有人在用吗?
如果不用 Oauth2 做这件事,Java 中用的非常多的一个也没说需要同域

https://www.apereo.org/projects/cas
2021-10-04 07:58:32 +08:00
回复了 hihanley 创建的主题 Go 编程语言 关于 Method 和 Function 的疑问
Go 中的方法函数实际上是个语法糖,在内部实现中,结构体或者指针就是它的第一个参数;至于一个方法要依赖另一个的问题,参考下 http 包中的 Request
2021-09-15 22:40:22 +08:00
回复了 dante6733 创建的主题 Linux 为什么国内互联网公司喜欢用 Centos 而不是 Ubuntu?
我们的运维说 ubuntu 的 LTS 版 5 年的安全更新,也支持时间太短,然后各类 bug,去问只会说一些配置差异,具体什么 bug 其实说不明白。。
2021-09-15 22:36:54 +08:00
回复了 LotteWong 创建的主题 数据库 关于 RBAC 设计优化的问题
@LotteWong 实际上按照帖子的内容讲,实现了整套的权限体系,但是还是按照最直接的方法去用,虽然理解起来简单,但真正去用不比用 casbin 或者 opa 这类的访问控制引擎低多少
1  2  
关于   ·   帮助文档   ·   博客   ·   API   ·   FAQ   ·   我们的愿景   ·   实用小工具   ·   1182 人在线   最高记录 6543   ·     Select Language
创意工作者们的社区
World is powered by solitude
VERSION: 3.9.8.5 · 29ms · UTC 23:16 · PVG 07:16 · LAX 16:16 · JFK 19:16
Developed with CodeLauncher
♥ Do have faith in what you're doing.