1. 程式人生 > >GO語言筆記(一)

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