golang初探之安装与代码组织

自从第一次在图灵社区看到许式伟的《Go语言编程》知道还有golang这门编程语言已经将近有一年的时间了,自从那之后开始学习golang,golang的社区很活跃,我觉得golang是未来的趋势。


好了,今天这里就简单的介绍一下golang的安装。


一、去https://code.google.com/p/go/downloads/list下载最新的go tools


二、下载完最新的压缩包解压到你的golang目录,然后在设置环境变量:

1)GOROOT: 设置你的GOROOT,GOROOT是你go tree的根目录,这个是可选的,当你想在多个本地仓库副本中切换是可以设置这个变量

GOROOT=../../go


2)在PATH变量中将%GOROOT%/bin添加进去,这样就可以在命令行中使用go command了


3)GOPATH: go command在这里查找

GOPATH=.../.../mygo

GOPATH是你的工作目录,下面包括bin,pkg,src三个目录,bin存放的是可执行命令,pkg存放的是编译好的package object(后缀为".a"),src存放的是源代码

GOPATH

bin

pkg

src

你可以将%GOPATH%/bin也添加到PATH中去,这样你就可以再命令行中执行你自己写出来的可执行文件


三、测试安装是否成功

在src下新建Hello.go:

package main


import( "fmt" )


func main() {

fmt.Println("Hello,World!")

}

保存并在命令行中执行go run Hello.go,若打印出“Hello,World!”则说明OK


三、Build and Install

这里我们要看一下Golang的代码组织结构,在安装完后你可以写在src下新建一个文件夹(包),例如是hello,进入此文件夹新建一个go文件,可以是如上很简单的Hello.go,

创建文件:$GOPATH/src/hello/hello.go

package hello

func SayHi(name string) string {
return "Hi," + name + "!"

}


进入$GOPATH/src/hello,执行go installl 或者 直接执行go install $GOPATH/src/hello

执行成功之后工作目录结构如下:

pkg/

windows_386/ #OS

hello.a #package object

src/

hello/

hello.go #package source


golang可以将package main中的代码当做一个可执行命令,并安装到$GOPATH/bin目录下

创建$GOPATH/src/test/SayHi.go

package main

import (
"hello"
"os"
"fmt"
)

func main() {
if len(os.Args) == 2 {
fmt.Println(hello.SayHi(os.Args[1]))
}else {
fmt.Println(hello.SayHi("Jack"))
}

}

安装:

>go install $GOPATH/test

运行:

>$GOPATH/test 李四

Hi,李四!

>$GOPATH/test

Hi,Jack!


此时工作目录结构如下:

bin/

test

pkg/

windows_386/ #OS

hello.a #package object

src/

hello/

hello.go #package source

test/

SayHi.go


好了,这里基本上就介绍完了golang的安装和代码的组织结构,以后再谈golang的其他话题。

最后需要注意的是如果你的平台是windows,命令行中可能无法正确显示中文,你需要将代码页换到65001,既执行chcp 65001即可,同时你的编辑器在保存源文件时encoding要设置为UTF-8 。


----如有错误,欢迎指出----

相关文章

什么是Go的接口? 接口可以说是一种类型,可以粗略的理解为他...
1、Golang指针 在介绍Golang指针隐式间接引用前,先简单说下...
1、概述 1.1 Protocol buffers定义 Protocol buffe...
判断文件是否存在,需要用到"os"包中的两个函数: os.Stat(...
1、编译环境 OS :Loongnix-Server Linux release 8.3 CPU指...
1、概述 Golang是一种强类型语言,虽然在代码中经常看到i:=1...