Go语言是谷歌2009发布的第二款开源编程语言。Go语言专门针对多处理器系统应用程序的编程进行了优化,使用Go编译的程序可以媲美C或C++代码的速度,而且更加安全、支持并行进程。

在 CentOS 上安装 go 语言就是一条简单的 yum install golang 命令。

Go 语言的开发环境按照项目的 src 和 bin 目录,分开存放。有两个主要的路径的环境变量:

GOPATH 指向 go 语言 的工作目录,该目录下设置 src 子目录,和 bin 子目录。

GOBIN 一般指向 $GOPATH/bin

我们在 $GOPATH/src/helloworld  目录下,创建 hello.go  文件如下:

package main

import “fmt”

func main() {
fmt.Printf(“你好!hello, world\n”)
}

然后在任意目录(该目录要能找到 hello.go)下运行: go install helloworld/hello.go ,go 语言将在 $GOBIN 下生成编译好的 hello 文件。

如果 $GOBIN 已经在你的执行路径下,即你运行过:export PATH=$PATH:$GOBIN,

那么在任意目录下,你都可以敲入 hello,会执行已经编译好的 hello.go  的输出。

作为全栈 Web 工程师,一个语言不能连接 MySQL 数据库肯定不是好语言。接下来我们看看 Go 语言怎么连接 MySQL。

第一步:

$ go get github.com/go-sql-driver/mysql

然后就会看到新的目录:$GOPATH/src/github.com/go-sql-driver/mysql,以及该目录下的一批文件。

下面我们在 $GOPATH/src/helloworld 下创建一个 mysql-test.go 文件如下:

package main

import (
“database/sql”
“fmt”
_ “github.com/go-sql-driver/mysql”
)

func main() {
db, err := sql.Open(“mysql”, “dbuser:dbpass@/dbname”)

if db == nil {
return
}
rows, err := db.Query(“select user_login,user_email from wp_users limit 0,5”)
if err != nil {
fmt.Println(err.Error())
return
}
defer rows.Close()
fmt.Println(“”)
cols, _ := rows.Columns()
for i := range cols {
fmt.Print(cols[i])
fmt.Print(“\t”)
}
fmt.Println(“”)

var user_login string
var user_email string
for rows.Next() {
if err := rows.Scan(&user_login, &user_email); err == nil {
fmt.Print(user_login)
fmt.Print(“\t”)
fmt.Print(user_email)
fmt.Print(“\t\r\n”)
}
}

}

如果你拷贝粘贴以上代码,有点乱的话, go 语言提供了 gofmt 命令可以自动排版。

gofmt -w mysql-test.go 就会把新排版的文件覆盖到 mysql-test.go  上。

接下去就是直接  go install mysql-test.go 。运行 mysql-test 即可看到从数据库里取出来的数据了。