我不能称自己是go
的绝对初学者,而且我绝对不是专家。
今天,我注意到一些非常令人困惑的事情。我在试验Unix套接字和Windows命名管道,根据我的研究,有两个包支持Windows命名管道:
-
https://github.com/natefinch/npipe
-
https://github.com/Microsoft/go-winio(我找不到任何关于这个包的文档、帮助、如何使用(
我的操作系统是Linux,我决定试一试:go get
包,并编写代码以便稍后在Windows机器上测试,但令我惊讶的是,至少在VSCode中,这些包没有被工具识别。
例如,当我看npipe
时,我发现它只有npipe_windows.go
,如果我没有弄错的话,它应该自动在Windows上使用。
所以,我认为Go中有操作系统特定包的概念,对吧?如果是这样的话,这是否意味着我不能使用VSCode的go工具来针对Linux上的Windows软件包进行编码?
在我看来,为了编写既能在Linux上工作又能在Windows上工作的东西,必须切换系统是非常不方便的。。。尽管我想只有当我们在Linux上开发时,这才是真的,而Windows应该同时涵盖这两个方面。
但对我来说,不能在Linux上开发一些东西是没有意义的;在IMHO上开发的最佳环境(当然,与苹果相关的代码除外(
我是不是遗漏了什么?
谢谢
所以,我认为我的问题实际上更多地涉及工具,而不是go
语言本身。如果选择使用go
语言服务器,则gopls
是VSCode使用的工具。
正如README
所说,它在alpha
中,不稳定,回购中列出了已知的问题,这似乎是我困惑的根源。
我认为与我所看到的相关的主要问题是:
x/tools/gopls:不处理构建标签