小编Ste*_*rer的帖子

Golang项目目录结构

关于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存储库中管理.

我怎么组织他们?

go gopath

12
推荐指数
4
解决办法
8954
查看次数

Golang导入路径最佳实践

我目前正在使用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的新手,所以请随便说出"你的问题甚至无效".

import go

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

从路径字符串构建嵌套文件夹结构

如何使用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)

javascript

5
推荐指数
2
解决办法
7101
查看次数

带通道的 WaitGroup goroutine

我正在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)

go

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

Go 和 Postgresql 中的十进制类型与 gorm

所以我正在创建一个 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)

database postgresql go go-gorm

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

从 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
查看次数

去链函数调用?

不知道正确的名称是什么,但我正在寻找有关Go中"链接函数调用"的更多信息.例如:

foo.DoSomething().WithThisOptionalThing()

所以我可以使用,foo.DoSomething()但有可能添加.WithThisOptionalThing()哪些额外的东西.这可能吗?请指出正确的方向/提供一些例子.

function go

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

如何在 Go 中使用 alert() 显示消息框

在javascript中,如果我们想在浏览器中显示带有自定义消息的弹出消息框,我们可以使用alert("message")函数。

怎么做呢Go

go

-2
推荐指数
1
解决办法
3943
查看次数