Go开发笔记

开发环境的搭建:

一、下载地址  -- 目前最新是1.4


不建议下载msi版本。
需要翻墙,这里提供最新版本的下载地址: http://download.csdn.net/detail/he90227/8325177
二、配置环境变量
$GOROOT  指向golang安装之后的根目录,E:\go\golang\go。
$GOBIN     指向安装之后根目录下的bin目录,我的是E:\go\golang\go\bin
--
配置GOROOT和GOBIN即可(如果你下载的是msi安装后,就会自动写入环境变量,而无需我们配置)
右键我的电脑-->属性-->高级-->环境变量
新建GOROOT   配置E:\go\golang\go
接着是将bin的路径加入加入到path中 %GOROOT%\bin;
最后打开cmd,运行 go version,如果看到下面的信息说明配置环境变量成功
 
三、hello go
写个简单的hello world
复制代码
package main

import "fmt"

func main(){

    fmt.Printf("Hello,GO!\n") 
}
复制代码

我们来分析下这个程序:

1、程序中的第2行这个是必须的。所有的Go文件以package <something>开头,对于独立运行的执行文件必须是package main;

2、第4行说需要将”fmt”包加入main。不是main的其他包都被称为库,其他许多编程语言有着类似的概念。

3、第1行和第4行中的//和/*---*/都是注释

4、package main 必须首先出现,紧跟着是import。在Go中,package 总是首先出现,然后是import,然后是其他所有内容。当Go 程序在执行的时候,首先调用的函数是main.main(),这是从C 中继承而来。这里定义了这个函数;

5、第8行调用了来自于fmt包的函数打印字符串到屏幕

以上解释来自阿来的博客

切换到hello.go的目录,执行 go  run hello.go
四、golang IDE的选择
目前 Sublime Text 2 vim 都提供了开发golang的插件。
感兴趣的可以移步这里golangIDE
由于自己长期接触eclipse,所以习惯了eclipse+plugin的模式
当然,eclipse也没有让我失望,提供了开发golang的插件goeclipse
如果发现等待时间太久,可以将Http改成Https,这个方法同样适用于其他eclipse插件
下载之后重启,在配置下goeclipse的配置就可以使用了
 
配置好之后,创建一个go project,在创建一个go file.
注意的是,hello.go需要放在src下才可以运行
最后啰嗦两句,一直以来,自己都喜欢离线安装eclipse插件,这次之所以没用,是之前尝试过
但是失败了,安装之后,发现右键没有run go application命令
原先自己尝试了安装

发现不行,特意在在线安装的时候看了下,发现eclipse下载的是

因此建议感兴趣的朋友可以尝试下

方式如下

  在eclipse下的plugins下,将上述插件直接丢进去重启,正常是安装了goeclipse,可以看下右键是否生成了run go application

如果不行改成放到dropins下载试试

最后,可以尝试link方式

在eclipse目录下创建links和otherplugin文件夹及其otherplugin目录下的子文件goeclipse

将之前的jar包及其https://goclipse.googlecode.com/svn/trunk/goclipse-update-site/下的

拷贝到goeclipse目录下

在links中然后创建goeclipse.link文件

并在goeclipse.link中插入
path=goeclipse的所在目录
假设otherplugin位于d:\eclipse\otherplugin下
则path=d:\eclipse\otherplugin\goeclipse
 
go luck!

另一个Go的Eclipse插件: 

GoClipse是一个为Eclipse平台添加Go语言编程功能的Eclipse插件。GoClipse的目的是为初学者创造一个开发Go语言的环境。平台发展比较缓慢,但一直在持续。

点击这里了解如何为Google App Engine配置GoClipse

Update Site https://github.com/GoClipse/releases/raw/master/

本文来自:CSDN博客

感谢作者:he90227

查看原文:Go开发笔记

郑重声明:本站内容如果来自互联网及其他传播媒体,其版权均属原媒体及文章作者所有。转载目的在于传递更多信息及用于网络分享,并不代表本站赞同其观点和对其真实性负责,也不构成任何其他建议。