Hello World Golang

雖然對 Go 非常有興趣,可是跟它的語法真的很難適應。今天硬把 Hello world 和 testing 做起來了

安裝設定 GOPATH 那些就 pass ,程式碼如下

首先要有一個 main package + main function 的檔案,我取名為 main.go ,這點跟 C 語言應該是一樣的

// main.go
package main

import "fmt"
import "github.com/MilesChou/go-practice/hello"

func main() {
	var s = hello.SayHello()

	fmt.Println(s)
}

因為我想做簡單的模組化,所以我把產生 hello world 的方法放到 hello package 裡

// hello/world.go
package hello

func SayHello() string {
	var hello = "Hello World"

	return hello
}

接著因為 SayHello 雖然沒有 input 不過可以預期它的 output ,所以可以寫測試,測試要跟待測程式放在一起才有辦法吃到一樣的 namespace

package hello

import (
	"testing"
	"strings"
)

func TestSayHello(t *testing.T) {
	var s = SayHello()

	if !strings.Contains(s, "Hello") {
		t.Error(`No contain "Hello"`)
	}
}

查了一下我知道的幾個 go project ,它們的測試都是這樣寫,我也不知道對不對,反正就先照做

Run

直譯執行

go run main.go

編譯

go build
./project-name

測試,它會自動找所在目錄的測試檔,也可以直接指定 GOPATH 的相對目錄

cd hello
go test

感想

目前 hello world 做起來還蠻順的,不過它有指標,而且資料結構比較多樣化,所以對我來說應該會比較難入門QQ”

可能 Rust 也會看一下再說

Written on September 5, 2016