暂无图片
暂无图片
暂无图片
暂无图片
暂无图片

Tutorial: Get started with Go

生有可恋 2022-02-11
1170

Go语言被称为是互联网时代的C语言,我们一起过一下官方的 tutorial。


首先是安装 go 语言,go 语言有多平台版,我们选择 Windows 平台的版本。下载地址为:


https://go.dev/doc/install



安装完成后,在命令行测试 go 语言是否可用

go version



然后测试 go 语言版本的 hello world,这里介绍了第一个 package fmt,这个 package 的作用是格式化输出。在 msys2 环境下将 go 可执行文件的目录加到 PATH 变量中,然后执行以下命令创建测试代码目录:

mkdir hello
cd hello
go mod init example/hello



go.mod 文件用来描述依赖关系,下面准备测试代码:

package main


import "fmt"


func main() {
fmt.Println("Hello, World!")
}


fmt 是语言自带的 package,准备备代码可以直接运行

go run .



下面介绍外部 package,这里使用以下网址搜索需要用到的包,搜索内容为"quote"


https://pkg.go.dev/



准备测试代码:

package main


import "fmt"


import "rsc.io/quote"


func main() {
fmt.Println(quote.Go())
}


获取依赖的 package

go mod tidy

此时发现报错,原因是网络问题,需要设置代理



重新设置代理后,外部 package 获取成功



下一步,测试 go 语言连接 Oracle 数据库,代码如下:


package main


import "fmt"


import (
"database/sql"
_ "github.com/sijms/go-ora/v2"


)


func main() {


conn, err := sql.Open("oracle", "oracle://user:passwd@192.168.1.1/service_name?TRACE FILE=trace.log")
if err != nil {
fmt.Println(err)
}
defer conn.Close()
stmt, err := conn.Prepare("select sysdate from dual")
if err != nil {
fmt.Println(err)
}


defer stmt.Close()
rows, err := stmt.Query()
if err != nil {
fmt.Println(err)
}
defer rows.Close()
var data string
for rows.Next() {
rows.Scan(&data)
fmt.Println(data)
}
}



执行代码报错,提示需要下载外部 package



按照提示手动下载依赖的包

go get github.com/sijms/go-ora/v2


最后编译代码,执行命令



从输出内容可以判断,Oracle 数据库连接上后,语句 select sysdate from dual 执行成功。


参考:

  1.  https://go.googlesource.com/go

  2. https://go.dev/doc/tutorial/

  3. https://github.com/golang/go/wiki/SQLDrivers

  4. https://github.com/sijms/go-ora

文章转载自生有可恋,如果涉嫌侵权,请发送邮件至:contact@modb.pro进行举报,并提供相关证据,一经查实,墨天轮将立刻删除相关内容。

评论