关于Golang目录结构,我有些困惑.
根据名为<The way to go>的书,项目代码应放入src,并推荐以下目录结构.
???src/
| ???main.go
| ???say/
| | ???say.go
| | ???say_test.go
???bin/
| ???say
???pkg/
???linux_amd64/
???say.a
Run Code Online (Sandbox Code Playgroud)
但我发现很多包里面github.com都没有src目录.
例如:
https://github.com/facebookgo/grace
https://github.com/astaxie/beego
所以,我不知道是否src需要目录.
我有一些项目,他们有相互依赖.它们在私有GitLab存储库中管理.
我怎么组织他们?
我目前正在使用Golang进行私人项目(我是新手).
但我有一个问题,我不知道什么是定义import path本地包的正确方法.
我和这个链接的作者有同样的感觉https://medium.com/@c9s/golang-the-annoying-remote-import-path-c6c7e76517e5
简而言之,如果我foo在Github上主持一个项目.使用github.com/levin/foo导入路径而不仅仅是我感觉很奇怪foo.如果我将代码移动到Bitbucket或在AWS中托管我自己的git服务器,它不会导致太多的返工吗?
更糟糕的是,我可以重写我的代码以更改导入路径,但是人们如何使用我的代码通知更改回购?我觉得要求别人更新他们的代码是没有意义的.
我是Golang的新手,所以请随便说出"你的问题甚至无效".
如何使用JavaScript从路径对象构建嵌套的UL结构?
例如,给定以下路径数组:
var paths = [
"d1/d2/d3/file1.txt",
"d1/d2/d3/file2.txt",
];
Run Code Online (Sandbox Code Playgroud)
我想建立以下UL
<ul class="base-UL">
<li class="folder">d1
<ul>
<li class="folder">d2
<ul>
<li class="folder">d3
<ul>
<li class="file" data-url="d1/d2/d3/file1.text">file1.text</li>
<li class="file" data-url="d1/d2/d3/file2.text">file2.text</li>
</ul>
</li>
</ul>
</li>
</ul>
</li>
</ul>
Run Code Online (Sandbox Code Playgroud)
我应该如何构建一个递归函数来执行此操作?
编辑 我能够成功编写一个执行此操作的函数,但我无法弄清楚如何将完整路径作为文件元素中的数据属性:请参见下文:
function buildFromPathList(paths) {
for (var i = 0, path; path = paths[i]; ++i) {
var pathParts = path.split("/");
var subObj = tree_;
for (var j = 0, folderName; folderName = pathParts[j]; ++j) {
if (!subObj[folderName]) {
subObj[folderName] = j < pathParts.length - 1 …Run Code Online (Sandbox Code Playgroud) 我正在WaitGroup从博客https://nathanleclaire.com/blog/2014/02/15/how-to-wait-for-all-goroutines-to-finish-executing-before-continuing/学习
代码:
package main
import (
"fmt"
"sync"
"time"
)
func main() {
messages := make(chan int)
var wg sync.WaitGroup
// you can also add these one at
// a time if you need to
wg.Add(3)
go func() {
defer wg.Done()
time.Sleep(time.Second * 3)
messages <- 1
}()
go func() {
defer wg.Done()
time.Sleep(time.Second * 2)
messages <- 2
}()
go func() {
defer wg.Done()
time.Sleep(time.Second * 1)
messages <- 3
}()
go func() {
for i …Run Code Online (Sandbox Code Playgroud) 所以我正在创建一个 API,我需要存储某些东西的价格。
我正在使用 gorm 和 gormigrate 进行数据库迁移。我只是想知道应该使用什么正确的类型来存储小数。我在某个地方发红,表示在存储货币时不应该使用浮点数。
type MyStruct struct {
Name string `json:"name" gorm:"not null"`
Description string `json:"description" gorm:"null"`
Price <what type should be here> `json:"price"`
}
Run Code Online (Sandbox Code Playgroud) 我正在使用带有相互 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)
是否可以?
不知道正确的名称是什么,但我正在寻找有关Go中"链接函数调用"的更多信息.例如:
foo.DoSomething().WithThisOptionalThing()
所以我可以使用,foo.DoSomething()但有可能添加.WithThisOptionalThing()哪些额外的东西.这可能吗?请指出正确的方向/提供一些例子.
在javascript中,如果我们想在浏览器中显示带有自定义消息的弹出消息框,我们可以使用alert("message")函数。
怎么做呢Go?
go ×7
database ×1
function ×1
go-gorm ×1
gopath ×1
grpc ×1
import ×1
javascript ×1
postgresql ×1
tls1.2 ×1