GO語言筆記(一)
GO程式一般結構// 當前程式的包名
package main
// 匯入其他包
import . "fmt"
// 常量定義
const PI = 3.14
// 全域性變數的宣告和賦值
var name = "gopher"
// 一般型別宣告
type newType int
// 結構的宣告
type gopher struct{}
// 介面的宣告
type golang interface{}
// 由main函式作為程式入口點啟動
func main() {
Println("Hello World!")
}
Go 程式是通過 package 來組織的。
只有 package 名稱為 main 的包可以包含 main 函式。
一個可執行程式有且僅有一個 main 包。
通過 import 關鍵字來匯入其他非 main 包。
- 可以通過 import 關鍵字單個匯入:
import "fmt"
import "io"
- 也可以同時匯入多個:
import {
"fmt",
"io"
}
- 使用 <PackageName>.<FunctionName> 呼叫:
package 別名:
// 為fmt起別名為fmt2
import fmt2 "fmt"
- 省略呼叫(不建議使用):
// 呼叫的時候只需要Println(),而不需要fmt.Println()
import . "fmt"
- 前面加個點表示省略呼叫,那麼呼叫該模組裡面的函式,可以不用寫模組名稱了:
import . "fmt"
func main (){
Println("hello,world")
}
- 通過 const 關鍵字來進行常量的定義。
通過在函式體外部使用 var 關鍵字來進行全域性變數的宣告和賦值。
通過 type 關鍵字來進行結構(struct)和介面(interface)的宣告。
通過 func 關鍵字來進行函式的宣告。
- 可見性規則
Go語言中,使用大小寫來決定該常量、變數、型別、介面、結構或函式是否可以被外部包所呼叫。
函式名首字母小寫即為 private :
func getId() {}
函式名首字母大寫即為 public :
func Printf() {}
Print() 函式將引數列表 a 中的各個引數轉換為字串並寫入到標準輸出中。
非字串引數之間會新增空格,返回寫入的位元組數。
func Print(a ...interface{}) (n int, err error)
Println() 函式功能類似 Print,只不過最後會新增一個換行符。
所有引數之間會新增空格,返回寫入的位元組數。
func Println(a ...interface{}) (n int, err error)
Printf() 函式將引數列表 a 填寫到格式字串 format 的佔位符中。
填寫後的結果寫入到標準輸出中,返回寫入的位元組數。
func Printf(format string, a ...interface{}) (n int, err error)
以下三個函式功能同上面三個函式,只不過將轉換結果寫入到 w 中。
func Fprint(w io.Writer, a ...interface{}) (n int, err error)
func Fprintln(w io.Writer, a ...interface{}) (n int, err error)
func Fprintf(w io.Writer, format string, a ...interface{}) (n int, err error)
以下三個函式功能同上面三個函式,只不過將轉換結果以字串形式返回。
func Sprint(a ...interface{}) string
func Sprintln(a ...interface{}) string
func Sprintf(format string, a ...interface{}) string
以下函式功能同 Sprintf() 函式,只不過結果字串被包裝成了 error 型別。
func Errorf(format string, a ...interface{}) error
func main() {
fmt.Print("a", "b", 1, 2, 3, "c", "d", "\n")
fmt.Println("a", "b", 1, 2, 3, "c", "d")
fmt.Printf("ab %d %d %d cd\n", 1, 2, 3)
// ab1 2 3cd
// a b 1 2 3 c d
// ab 1 2 3 cd