小编Gri*_*lik的帖子

是否可以内联函数,包含Golang中的循环?

例如,我在golang中进行了以下测试:

// inline-tests.go
package inlinetests

func plus(a, b int) int {
    return a + b
}

func plus_plus(a, b, c int) int {
    return plus(plus(a, b), plus(b, c))
}

func plus_iter(l ...int) (res int) {
    for _, v := range l {
        res += v
    }
    return
}
Run Code Online (Sandbox Code Playgroud)

如果我尝试构建它,我会收到以下内容:

go build -gcflags=-m inline-tests.go
# command-line-arguments
./inline-tests.go:4: can inline plus
./inline-tests.go:8: can inline plus_plus
./inline-tests.go:9: inlining call to plus
./inline-tests.go:9: inlining call to plus
./inline-tests.go:9: inlining call to plus
./inline-tests.go:12: plus_iter …
Run Code Online (Sandbox Code Playgroud)

performance go

7
推荐指数
2
解决办法
4520
查看次数

从 Go gRPC 处理程序中的客户端证书获取主题 DN

我正在使用带有相互 tls 的 Golang gRPC。是否可以从 rpc 方法获取客户端的证书主题 DN?

// ...
func main() {
    // ...
    creds := credentials.NewTLS(&tls.Config{
        ClientAuth:   tls.RequireAndVerifyClientCert,
        Certificates: []tls.Certificate{certificate},
        ClientCAs:    certPool,
        MinVersion:   tsl.VersionTLS12,
    })
    s := NewMyService()
    gs := grpc.NewServer(grpc.Creds(creds))
    RegisterGRPCZmqProxyServer(gs, s)
    er := gs.Serve(lis)
    // ...
}

// ...
func (s *myService) Foo(ctx context.Context, req *FooRequest) (*FooResonse, error) {
    $dn := // What should be here?
    // ...
}
Run Code Online (Sandbox Code Playgroud)

是否可以?

ssl-certificate go mutual-authentication grpc tls1.2

1
推荐指数
1
解决办法
1450
查看次数

额外的 std::map::contains 调用与处理异常?

c++中什么效率更高?

if (my_map.contains(my_key)) return my_map.at(my_key);
Run Code Online (Sandbox Code Playgroud)

或者

try { return my_map.at(my_key); } catch (std::out_of_range e) { ... }
Run Code Online (Sandbox Code Playgroud)

c++ stl stdmap c++20

0
推荐指数
1
解决办法
72
查看次数