文章目錄
- 1.包管理 (調用)
-
- 調用包(在同一個級别)
- 不同級别
- 2 . 輸出print
-
- 内置函數
- fmt 包 (推薦)
- 3. 輸入 fmt.Scan
-
- 讀取整整一行
- 3. 注釋
- 4. Go語言命名規則
- 5. ASCII碼
- 6. 基本元素
-
- **字面量**
- 操作符勻運算符
- 聲明
1.包管理 (調用)
包
介紹
- 一個檔案夾可以成為一個包
- 在檔案夾(包)中可以建立多個檔案夾
- 在 同一個包下的每一個檔案中必須指定
包名稱且相同
- 同一個包中,包名相同,可直接
調用其他檔案中的功能
包
分類
- main包,必須寫一個
,此函數就是項目的入口(main主函數)。編譯生成的就是一個main函數
。可執行檔案
- 非main包,用來将代碼
分類
,友善查找
注意:
如果是功能必須首字母大寫
開頭,則不能被其他所調用小寫
調用包(在同一個級别)
然後運作,發現隻build檔案app1沒有編譯app2
- 手動執行go install
- 修改配置:讓其直接可編譯一個檔案夾裡面的内容 結果
不同級别
導入包----->也就是檔案所在位置
調用功能
2 . 輸出print
内置函數
不确定高版本會支援
- print 不換行
- println
fmt 包 (推薦)
- fmt.Printf 不換行,可以轉義特殊字元
,可以列印出需要格式化輸出并帶輸出格式
Printf : 隻可以列印出格式化的字元串,可以輸出字元串類型的變量,不可以輸出整形變量和整形字元串,和變量
var a int=1
fmt.Printf("%d,%s",a,"abc")
- fmt.Println
會根據你輸入格式println
,原樣輸出
fmt.Println("hello","world","nice")
結果:中間有空格
hello woeld nice
也就是說,當需要格式化輸出資訊時一般選擇 Printf,其他時候用 Println 就可以了
3. 輸入 fmt.Scan
fmt.Scan
fmt.Scanln
fmt.Scanf
- 用指針,也就是會用到記憶體位址
-
為指針,指向的位址&
- 類型要比對,所有類型都可以
- switch可以用于判斷
變量實際存儲的變量類型。interface
var name string
fmt.Scan(&name)
特别說明:fmt.Scan
要求輸入兩個值,必須輸入兩個
,否則他會一直等待。
var name string
var age int
fmt.Println("請輸入使用者名:")
// 當使用Scan時,會提示使用者輸入
// 使用者輸入完成之後,會得到兩個值:count,使用者輸入了幾個值;err,用輸入錯誤則是錯誤資訊
_, err := fmt.Scan(&name, &age)
if err == nil {
fmt.Println(name, age)
} else {
fmt.Println("使用者輸入資料錯誤", err)
}
特别說明:fmt.Scanln
等待回車
。
var name string
var age int
fmt.Print("請輸入使用者名:")
// 當使用Scanln時,會提示使用者輸入
// 使用者輸入完成之後,會得到兩個值:count,使用者輸入了幾個值;err,用輸入錯誤則是錯誤資訊
count, err := fmt.Scanln(&name, &age)
fmt.Println(count, err)
fmt.Println(name, age)
fmt.Scanf
支援特殊字元
var name string
var age int
fmt.Print("請輸入使用者名:")
_, _ = fmt.Scanf("我叫%s 今年%d 歲", &name, &age)
fmt.Println(name, age)
讀取整整一行
當使用ftm.Scan等功能時,如果輸入一整行且期間存在空格,則無法擷取整行。
想要讀取一行資料,這個功能
可以基于标準輸入
來進行實作。
package main
import (
"bufio"
"fmt"
"os"
)
func main() {
reader := bufio.NewReader(os.Stdin)
// line,從stdin中讀取一行的資料(位元組集合 -> 轉化成為字元串)
// reader預設一次能4096個位元組(4096/3)
// 1. 一次性讀完,isPrefix=false
// 2. 先讀一部分,isPrefix=true,再去讀取isPrefix=false
line, _, _ := reader.ReadLine()
data := string(line)
fmt.Println(data)
}
3. 注釋
/*
可以注釋多行
*/
4. Go語言命名規則
5. ASCII碼
6. 基本元素
25個關鍵字