小编J0-*_*nas的帖子

gocode自动完成功能不起作用

我想使用自动完成,但无法获得gocode(https://github.com/nsf/gocode)工作.

我选择的编辑器是Brackets(使用https://github.com/David5i6/Brackets-Go-IDE).但我无法让它与vim + vundle或komodo合作.

  • GO安装没有设置GOPATH
  • 我设置GOPATH和PATH就像指定的指令一样,可以正常工作.

我的文件夹结构:

~/Documents/goDev/bin/
                      test
                      gocode
                 /src/
                     github/
                            jonas/
                                  test/
                                       test.go
                             nfs/
                                  gocode/
                                       ...
Run Code Online (Sandbox Code Playgroud)

来自我的.profile:

export GOPATH=/Users/jonas/Documents/goDev
export PATH=$PATH:/usr/local/bin:/usr/local/go/bin/:/Users/jonas/Documents/goDev/bin
Run Code Online (Sandbox Code Playgroud)

随着环境,我得到:

...
GOPATH="/Users/jonas/Documents/goDev"
...
GOROOT="/usr/local/go"
GOTOOLDIR="/usr/local/go/pkg/tool/darwin_amd64"
...
Run Code Online (Sandbox Code Playgroud)

我的设置有问题吗?或者我可能错过了其他什么?

提前致谢

ide go

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

如何编程语言实现跨平台功能?

自从Swift成为开源并且linux端口缺乏费用以来,这更像是一个普遍的问题.

有许多跨平台编程语言.让我们以Go为例.(真棒)Go标准库有很多包.一些是基于原始数据类型的有用结构和函数.但其他人实现I/O,网络,操作系统和同步.

这与Swift和LLVM编译器基础结构相比如何?

对于clang我认为存在例如跨平台并发,我们可以交叉编译.但对于Swift来说,存在平台差异,其中Mac版本依赖于"Darwin.C"而Linux版本依赖于"Glibc".这导致一些尴尬的代码片段:

#if os(Linux)
import Glibc
#else
import Darwin.C
#endif
Run Code Online (Sandbox Code Playgroud)

...

#if os(Linux)
            let j = Int(random() % (count - i)))) + i
#else
            let j = Int(arc4random_uniform(UInt32(count - i))) + i
#endif
Run Code Online (Sandbox Code Playgroud)

Swift/LLVM是否总是在编译器的前端处理这些平台特定的功能,以便它们依赖于c库?或者他/他们会将它们作为编译器的一部分来实现吗?

我读到Go/Rust编译器本身是用Go/Rust编写的.这使我相信编译器的实现方式不同,每个操作系统都具有并发性,网络功能 - 独立于c库.

是这样吗?或者是一些编程语言更好地隐藏其依赖关系?

programming-languages llvm go swift

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

标签 统计

go ×2

ide ×1

llvm ×1

programming-languages ×1

swift ×1