我想使用自动完成,但无法获得gocode(https://github.com/nsf/gocode)工作.
我选择的编辑器是Brackets(使用https://github.com/David5i6/Brackets-Go-IDE).但我无法让它与vim + vundle或komodo合作.
我的文件夹结构:
~/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)
我的设置有问题吗?或者我可能错过了其他什么?
提前致谢
自从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库.
是这样吗?或者是一些编程语言更好地隐藏其依赖关系?