go是否具有不能在其他OS上使用的特定于OS的软件包?

时间:2019-11-01 05:05:05

标签: linux windows go cross-platform go-packages

go中,我不能称自己是绝对的初学者,而且我绝对不是专家。

今天,我注意到了一些非常令人困惑的地方。我正在尝试使用Unix套接字和Windows命名管道,并且从我的研究中,有2个支持Windows命名管道的软件包:

我的操作系统是Linux,所以我决定尝试一下:go get软件包,并编写代码以便以后在Windows机器上进行测试,但令我惊讶的是,至少在VSCode中,则工具无法识别这些软件包。

例如,当我查看npipe时,我看到它只有npipe_windows.go,如果我没记错的话,它应该会自动在Windows上使用。

所以,我认为Go中有特定于操作系统的软件包的概念,对吗?如果是这样,这是否意味着我无法使用VSCode的go工具针对Linux上的Windows软件包进行编码?

在我看来,必须切换系统才能编写在Linux和Windows上都可以使用的东西,这是非常不便的。尽管我猜这只有在我们在Linux上开发时才是正确的,而Windows应该覆盖两者。

但是对我来说,不能在 Linux 上开发某些东西是没有意义的;在IMHO上开发的最佳环境(当然,与Apple相关的代码除外)

我在这里想念东西吗?

谢谢

1 个答案:

答案 0 :(得分:0)

因此,我认为我的问题实际上涉及更多的工具,而不是go语言本身。如果您选择使用go语言服务器,则gopls是VSCode使用的工具。

正如README所说的那样,它位于alpha中并且不稳定,并且回购中列出了known issues,这似乎是我感到困惑的原因。

我认为与我所见相关的主要问题是:

  

x/tools/gopls: does not handle build tags