小编use*_*268的帖子

Golang,从Github导入包请求我记住Github URL?

我对Golang很新.我在Golang中看到你可以直接从Github导入包,如:

import "github.com/MakeNowJust/heredoc"
Run Code Online (Sandbox Code Playgroud)

这是否意味着我必须记住这个URL才能使用这个包?恕我直言这不酷.如果软件包的作者后来将其删除或更改了URL,该怎么办?有任何想法吗?

github package go

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

Golang如何在goroutine之间共享变量?

我正在学习Go并试图了解其并发功能。

我有以下程序。

package main

import (
    "fmt"
    "sync"
)

func main() {
    var wg sync.WaitGroup

    for i := 0; i < 5; i++ {
        wg.Add(1)

        x := i

        go func() {
            defer wg.Done()
            fmt.Println(x)
        }()

    }

    wg.Wait()
    fmt.Println("Done")
}
Run Code Online (Sandbox Code Playgroud)

执行后,我得到:

4
0
1
3
2
Run Code Online (Sandbox Code Playgroud)

这就是我想要的。但是,如果我稍加修改:

4
0
1
3
2
Run Code Online (Sandbox Code Playgroud)

我得到的将是:

5
5
5
5
5
Run Code Online (Sandbox Code Playgroud)

我不太明白区别。谁能帮助解释这里发生的事情以及Go运行时如何执行此代码?

concurrency multithreading go goroutine

6
推荐指数
2
解决办法
5264
查看次数

golang是否有下载第三方软件包的中央存储库?

我是Golang的新手.据我所知,当你想创建一个新的Go项目时,我们只需要创建一个目录.然后我们将环境变量GOPATH指向此目录.在这个目录中,我们创建了三个子目录pkg,srcbin.然后,当我们执行时go get ...,第三方软件包将安装在pkg子目录中.稍后如果我想创建另一个Go项目,我创建一个名为project2的新目录并指向GOPATHproject2.此时go get ...将在pkgproject2 的子目录中下载第三方软件包.我的问题是,Go是否有一个中央存储库?如果没有,如果在两个不同的项目中使用相同的包,则将下载两次.真的吗?

package go

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

什么是Golang相当于Ruby的"方法"方法?

我正在玩Golang,我想知道是否有一种方法可以列出我可以在变量上使用的所有方法或属性.在Ruby中,我可以简单地使用some_variable.methods来获取所有定义的方法some_variable.Golang有类似的东西吗?

ruby reflection methods go

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

Go中如何根据符文而不是字节获取子字符串索引?

我正在玩 Golang 并发现了这个问题。我可以使用以下代码来获取基于字节的索引:

\n\n
strings.Index("\xe6\x82\xa8\xe5\xa5\xbd\xe4\xbd\xa0\xe5\xa5\xbd", "\xe4\xbd\xa0\xe5\xa5\xbd")\n
Run Code Online (Sandbox Code Playgroud)\n\n

我得到的是 6,它是基于字节计数的。

\n\n

如果我们依靠符文(字符),我们应该得到 2,这就是我想要的。我怎样才能得到我想要的东西?

\n\n

谢谢。

\n

string unicode substr go

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

为什么该快捷方式在我的 Delphi 程序中不起作用?

我用Delphi 10.4 编写了一个程序。UI 的主要部分只是一个 TMemo。当用户在其中输入内容时,应用程序会自动将 TMemo 中的文本复制到剪贴板。它看起来像这样:

在此输入图像描述

这个自动复制部分效果很好。但是,我还想让用户通过快捷方式更改深色主题或浅色主题。我启用了深色主题和浅色主题。

在此输入图像描述

代码如下所示:

unit Unit1;

interface

uses
    Winapi.Windows, Winapi.Messages, System.SysUtils, System.Variants,
    System.Classes, Vcl.Graphics,
    Vcl.Controls, Vcl.Forms, Vcl.Dialogs, Vcl.StdCtrls, Clipbrd, System.Actions,
    Vcl.ActnList, Vcl.Themes;

type
    TForm1 = class(TForm)
        txt: TMemo;
        ActionList1: TActionList;
        act_change_theme: TAction;
        procedure txtChange(Sender: TObject);
        procedure act_change_themeExecute(Sender: TObject);
        procedure FormCreate(Sender: TObject);
    private
        { Private declarations }
    public
        { Public declarations }
    end;

var
    Form1: TForm1;

var
    is_dark: Boolean;

implementation

{$R *.dfm}

function ShortCut(Key: Word; Shift: TShiftState): TShortCut;
begin
    Result := 0;
    if HiByte(Key) <> 0 …
Run Code Online (Sandbox Code Playgroud)

delphi action keyboard-shortcuts hotkeys

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