go语言开发苹果 go语言开发实战( 四 )


packagemainimport"fmt"func main(){fmt.Printf("hello, world")}
配置gocode(可?。?
如果不需要go语法辅助和eclipse里面的(按ALT+/)弹出go语言自动辅助功能,请跳过这个配置 。
1、下载gocode的zip文件,解压后放在go的bin目录下 。
2、下载并安装Git软件 。并且在path里面配置git的执行路径 。例如c:\git\bin
3、在命令行执行:go build .\gocode 。如果一切正常 , 那么将会编译生成一个gocode.exe文件在go的bin目录下 。如果编译失败,那么就转第4步 。
4、如果第3步直接编译gocode源文件成功,那就直接到第5步 。否则,就需要通过git下载gocode源文件,然后再编译 。在命令行执行:go get -u github.com/nsf/gocode。就会生成gocode.exe文件 。
5、在goclipse插件里面指定gocode的路径 。就可以在elcipse里面调用gocode来帮助写编码了 。
从开发工具这块看,go语言还不够成熟,开发工具都还不完善,有待改进 。
下载go-tour教程源代码(可?。?
Google有个在线运行go语言的教程(),很不错 。支持在web上直接运行大部分的go程序,想了解这个教程的源代码的朋友可以通过以下方式获取 。如果没兴趣,可以跳过这个步骤 。
1、下载安装Mercurial软件 。
2、在命令行下输入:
hg clone
作为测试用的 。如果把http改成https协议,下载就会失败 。搞不懂 。
编译带调用C代码的go文件(可?。?
1、为了在windows下编译带C代码的go程序,你首先需要下载并安装MinGW或者Cygwin 。
2、首选安装MinGW 。在安装MinGW之后,记得要把MinGW安装目录\bin路径设置在path环境变量里面 , 以便能在dos窗口下直接调用gcc 。
3、下载一个gowin-env 。下载地址:gowin-env 。下载后解压到某个目录下 , 例如:C:\gowin-env. 然后,编辑go-env.bat 。配置相关的go参数 。例如,我的配置是:
set GOARCH=386
set GOOS=windows
set GOROOT=c:\go
set GOBIN=%GOROOT%\bin
set GOPATH=%GOROOT%;F:\workspace\goSample01;
设置好go-env.bat后,就可以点击Console.bat来启动编译和运行窗口 。
4、编写一个带C代码的go程序 。例如,testc.go
5、编译
例如:
go build -compiler gccgo test_c.go
运行调用C代码的go文件(可?。?
1、testc.go.
创建rand目录,然后在rand里面创建testc.go. 代码如下:
package rand
/*
//
#include stdio.h
*/
import "C"
func PrintHello() {
C.puts(C.CString("Hello, world\n"))
}
2、a.go
在rand下创建a.go.代码如下:
package rand
import "fmt"
func SayHello(name string){
fmt.Println(name)
}
3、test_import.go
在rand的上一级创建test_import.go 。代码如下:
package main
import "./rand"
func main(){
rand.SayHello("tom")
rand.PrintHello()
}
4、运行test_import.go
go run test_import.go
在测试其它几个C代码的时候,发现windows版本的cgo还有些编译问题,同样的代码转移到苹果的XCODE下就没有问题 。后来终于发现原因了,原来有些例子是unix平台下的,而在windows平台下 , 方法名和参数需要做调整 。
例如:下面代码在windows下编译报一堆错误 。
package rand
/*
#include stdlib.h
*/
import "C"
func Random() int {
return int(C.random())
}
func Seed(i int) {
C.srandom(C.uint(i))
}
这里需要把return int(C.random()) 修改为“return int(C.rand())”
C.srandom(C.uint(i))修改为“C.srand(C.uint(i))”编译就OK了 。
为什么Android应该转为Go语言开发?这是非常荒谬的,Java的流行就是因为Java的大部分东西都是开源的 。(这也不是Oracle第一次向别的公司索要专利费) 。在有很多更好的语言可以选择的情况下,为什么Google仍然还要使用Java来开发Android呢?Google最终选择Java的原因是因为Java非常流行 , 而且Java可以通过一定程度的定制完成底层的硬件操作(比如C),然而一些更高层的语言(比如JavaScript)并没有这种功能 。一旦Google选择了这样一个非常流行的语言,对于开发者来讲 , 上手Android 开发也变得简单的多 。最近一段时间Android是最流行的移动平台 , 但是IOS的市场份额也非常接近 。你知道IOS选择的编程语言么?对是Objective-C,除了开发苹果的产品之外,几乎没有人使用Objective-C 。所以说苹果选择了一种不流行的 , 但是基本上是自己控制的语言平台 。Google确实需要为Android选择另外的编程语言,一个自己有更多的控制权限的语言,是否流行并不重要(比如IOS) 。Google应该选择Go,在golang.org上go语言开发苹果我们可以看到go语言开发苹果:Go is an open source project developed by a team at Google and many contributors from the open source community. Go is distributed under a BSD-style license.Go是一个新的并没有多少用户的语言 , 但是Obective-C同样 。Google是Go语言的奠基人,可以完全控制Go语言的发展 。Go是在BSD协议下发布的开源语言,这意味着所有的开发者可以在任何地方使用它 。另外,Go是一个操作系统级的语言 。这里有一些关于Go的信息 。Go语言在现有的系统编程语言环境遇到困难时诞生了 。程序设计变得如此的困难 , 而选择语言就是其中很大的一个原因 。开发者不得不选择一个高效编译、高效执行且开发简单的语言,而这三种特性在现代的语言中并不会同时存在 。程序开发者如果想选择简单胜过安全的语言,可能转向动态类型的语言,例如Python、JavaScript而不是C++、Java 。Go语言是一个试图结合动态类型和静态类型,编译效率和安全性以及语言的易用性等众多特性与一体的一种尝试 。他的另一个目标是支持现代的基于网络的、基于多核的计算 。最后,Go还是非常快的 , 他可以在单个计算机上仅仅花费几秒时间构建一个庞大的应用程序 。为了达到这些目标需要解决这些语言问题:灵活的类型系统、并发的垃圾回收、强制的依赖规范等等 。这些东西不是旧的语言一些库或者工具可以处理的,这也就是他被称为新的编程语言的原因 。这里有我提到的三种语言的语法比较:Go版本的HelloWorld:package main import "fmt" func main() { fmt.Println("Hello, World!") }Java版本的HelloWorld:class ArbitraryClassName { public static void main(String[] args) { System.out.println("Hello World!"); } }Objective-C版本的HelloWorld#importint main( int argc, const char *argv[] ) { printf("Hello World!"); return 0; }OSCHINA.NET原创翻译/原文链接Android 的详细介绍:请点这里Android 的下载地址:请点这里