go 語言入門

2021-06-10 02:22:20 字數 3628 閱讀 1626

參見文章1,文章2

1.編譯

go build test.go

2.執行

go run test.go

3.看幫助

go doc builtin

go doc fmt/fnv

4.執行測試

編寫源**even.go

/*

this package is test for write package

*/package even

// check value is even value

// if is even, return true, otherwise false

func even(value int) bool

func odd(value int) bool

編寫測試**even_test.go

package even

import (

"testing"

)func testevent(t *testing.t)

}func testodd(t *testing.t)

}

執行測試
go test

5.建立包

建立源**檔案,在$goroot下的src\pkg\utils\ustackm目錄下建立檔案ustack.go

/**

simulate stack, capacity is 10

**/package ustack

import (

"errors"

strconvutils "strconv"

)const stackmax = 10

type ustack struct

func (s *ustack) push(value int) (result int, err error)

s.datas[s.index] = value

result = s.index

s.index++

return

}func (s *ustack) pop() (result int, err error)

result = s.datas[s.index-1]

s.index--

return

}func (s *ustack) string() (str string)

return

}

注意包內的函式和型別能被外界訪問,必須名字第乙個字元大寫

go build ustack.go
go install
將ustack.a放到$goroot下的pkg\windows_386\utils\ustack目錄下或pkg\linux_386\utils\ustack

建立包方法另外一種方法

參見文章3,文章4

在環境變數中加入gopath,指定對應包目錄(可以有多個目錄),在下面建立src目錄,作為包的目錄

編寫對應的go檔案,比如上例的src\ustack\ustack.go

在任何目錄執行

go install ustack
自動在對應的gopath目錄下生成pkg目錄

6.介面的寫法

type ifactory inte***ce 

m_factory factoryimpl

} run()}}

type factoryimpl struct }}

}

7編譯鏈結

8g 123.go

8l -o 123.out 123.8

8得到作業系統目錄分隔符

filepath.separator

9判斷檔案或目錄是否存在

return false

} _, err := ioutil.readdir(pathname)

if nil != err

return true

} f, err := os.open(filename)

if err != nil && os.isnotexist(err)

defer f.close()

return true

}10.得到日期

return time.now().format("2006-01-02 15:04:05")

}11.字串轉為小寫

strings.tolower

12.拷貝檔案函式

srcfile, err := os.open(src)

if err != nil

defer srcfile.close()

dstfile, err := os.create(dst)

if err != nil

defer dstfile.close()

w, err := io.copy(dstfile, srcfile)

w = w + 1

if nil != err

return true

}13.擷取字串

rs := rune(str)

rl := len(rs)

end := 0

if start < 0

if start > rl

if start < 0

if start > rl

end = start + count

if end > rl-1

return string(rs[start:end])

}14.讀寫檔案

srcfile, err := os.openfile(hname, os.o_rdonly, 0666)

if nil != err

defer srcfile.close()

if nil != err

defer tempfile.close()

srcreader := bufio.newreader(srcfile)

destwriter := bufio.newwriter(tempfile)

defer destwriter.flush()

for

break

}_, err = destwriter.writestring(str)

if nil != err

} }

15.字串包含子字串

// 包含

strings.contains(str, substr)

// 在結尾

strings.hassuffix(str, substr)

// 在頭

strings.hasprefix(str, substr)

go語言入門

目錄go命令 apt install golang yum install golang y 新增環境變數,使用一下命令測試安裝是否成功 go versiongo help就像其他靜態型別語言一樣,要執行 go 程式,需要先編譯,然後在執行產生的可執行檔案。go build命令就是用來編譯 go程式...

Go 語言入門一 Go 安裝

本文介紹 go 語言編譯工具的安裝和解除安裝。如果是公升級go工具,則先解除安裝舊版本,在安裝新版本。tar c usr local xzf go version.os arch.tar.gz 將 usr local go bin目錄新增至環境變數 編譯 etc profile或者 home pro...

go語言 grpc入門

go get google.golang.org grpc1.編寫.proto描述檔案 hello.proto syntax proto3 package proto message string service helloservice2.使用protoc工具生成相應的go 生成的 與porto描...