參見文章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描...