1. 程式人生 > >讀書筆記之《Go程式設計語言》---第一章 入門

讀書筆記之《Go程式設計語言》---第一章 入門

Hello World
在這裡插入圖片描述
知識點:

  • Go程式碼使用包來組織,包類似於其他語言中的庫和模組
  • 每一個原始檔的開始都是用package宣告,指明這個檔案屬於哪個包
  • 你必須精確地匯入需要的包,在缺失匯入或存在不需要的包時,編譯會失敗
  • Go不需要再語句或聲明後面使用分號結尾,跟在特定符號後面的換行符被轉換為分號,“{”必須和關鍵字func在同一行,x+y這個表示式中,換行符可以出現在+的後面,但是不能出現在+的前面
  • 使用gofmt工具可以將程式碼以標準格式重寫
  • 執行go可執行檔案 go run helloworld.go
  • 構建go可執行檔案 go build helloworld.go

命令列引數
知識點:

  • os包提供一些函式和變數,以與平臺無關的方式和作業系統打交道,命令列引數以os包中Args名字的變數提供訪問,在os包外面使用os.Args
  • go中,所有的索引使用半開區間,及包含第一個索引,不包含最後一個索引
  • 註釋以//開頭
  • 變數可以在宣告的時候初始化,如果沒有明確地初始化,它將隱式地初始化為這個型別的空值
  • +操作符對字串的值進行追加,+=是賦值操作,:=用於短變數宣告
  • i++是語句不是表示式,所以 j = i++不合法,且僅支援字尾,所以–i不合法
  • go不允許存在無用臨時變數
  • 空識別符號“ _ ”(下劃線),可以用在任何語法需要變數,但程式邏輯不需要的地方
    四種變數宣告方式:
    在這裡插入圖片描述

    for迴圈語句:
    在這裡插入圖片描述
    在這裡插入圖片描述
    在這裡插入圖片描述

if語句:
在這裡插入圖片描述

bufio包
在這裡插入圖片描述
知識點:

  • 掃描器Scanner,可以讀取輸入,以行或單詞斷開
  • 新建一個bufio.Scanner型別的input變數: input := bufio.NewScanner(os.Stdin)
  • 每一次呼叫input.Scan()讀取下一行,並將結尾換行符去掉
  • fmt.Printf從一個表示式列表生成格式化輸出,Printf函式有超過10的轉義字元
    在這裡插入圖片描述
  • map是一個使用make建立的資料結構的引用,當一個map傳遞給一函式式,函式接受到的是引用的副本。
  • const宣告,用來給常量命名。
  • 控制流if,for,switch
  • type宣告,給已有型別命名
  • go提供指標,使用&操作符獲取一個變數的地址,使用*操作符獲取指標引用的變數的值
  • 方法和介面:關聯了命名型別的函式稱為方法,介面可以用相同的方式處理不同具體型別的抽象型別
  • 註釋: 單行註釋//,多行知識/*…*/