go語言基礎(main函數、數據類型)


go語言基礎(main函數、數據類型)

1、Go語言介紹

  • Go語言是雲計算時代的c語言
  • c和c++這類語言提供了很快的執行速度,而Rudy和python這類語言則擅長快速開發。Go語言則介於兩者之間,不僅提供了高性能的語言,同時也讓開發更快速

優勢

  1. 部署簡單,可直接編譯成機器碼、不依賴其他庫,部署就是扔一個文件上去就完成了
  2. 靜態類型語言(c是靜態語言、python解釋性語言),但是有動態語言的感覺,靜態類型的語言就是可以在編譯的時候檢查出來隱藏的大多數問題,動態語言的感覺就是有很多的包可以使用,寫起來的效率高
  3. 語言層面支持並發,這是Go最大的特色。可以充分的利用多核,很容易的使用並發
  4. 內置runtime,支持垃圾回收GC,不需要手動釋放
  5. 關鍵字25個,支持:繼承、重載、對象等
  6. 豐富的標准庫
  7. 跨平台編譯
  8. 內嵌c支持

2、 main函數

  1. go語言以包作為管理單位
  2. 每個文件必須先聲明包
  3. 程序必須有一個main包(重要),沒有程序無法編譯
  4. 程序要有一個入口函數main函數,並且有且只有一個,也就是說在liteide直接圖形界面編譯,一個文件夾只能有一個main函數
  5. 左括號必須和函數同行
  6. "hello world"用fmt.Println打印到屏幕,Println()會自動換行
  7. // 和/* */注釋,選中代碼,按ctrl+\,注釋和取消注釋代碼的快捷鍵
  8. 會自動格式化
  9. 語句結尾沒有分號
  10. 運行:ctrl+R
  11. import導入的包必須使用,聲明的變量也必須使用

3、使用命令行運行文件(在cmd文件的目錄下)

  • go build XXX.go:編譯生成一個可執行程序(可以解決在一個文件中快捷鍵只能生成可執行文件.exe的問題)。如go bulid 02_hello.go,go build 01_hello.go運行2次,也會生成2個可執行文件
  • cls:清屏
  • go run XXX.go:不生成程序,直接運行

4、變量、常量、枚舉

4.1 輸出

  1. Println:一段一段處理,自動加換行符
  2. Printf:格式化輸出,把a的內容放在%d的位置

如:

fmt.Println("a = ", a)
fmt.Println("a = ", a, ", b = ", b, " ,c = ", c)
fmt.Printf("a = %d\n", a)
fmt.Printf("a = %d, b = %d, c = %d\n", a, b, c)

4.2 聲明變量

  1. var a int(申明一個變量)
  2. var a,b int(聲明2個變量)
  3. var b int = 10(聲明變量,同時初始化賦值)
  4. 自動推導類型,必須初始化,通過初始化的值確定類型(常用),只能一次,賦值可以多次

如:

c := 30 
fmt.Printf("c type is %T\n", c) //%T打印變量所屬的類型

多次賦值,以及值的交換
i, j := 10, 20
j, i = j, i

多個變量不同類型的聲明(定義)
var (
    a int
    b float64
)
var (
    a int = 1
    b float64 = 1.1
)
var (
    a = 1
    b = 1.1
)

4.3 匿名變量

匿名變量,丟棄數據不處理,匿名變量配合函數返回值使用,才有優勢

tmp, _ = i, j
fmt.Println("tmp = ", tmp)

func test() (a, b, c int){
    return 1, 2, 3
}
var c, d, e int
_, d, _ = test()
fmt.Printf("d = %d/n", d)

4.4 常量

  • 變量:程序運行期間,可以改變的量,變量聲明需要var
  • 常量:程序運行期間,不可以改變的量,常量聲明需要const,常量自動推導不需要冒號

    const a int = 10 fmt.Println("a = ", a)

    const b = 11.2 //自動推導不需要冒號 fmt.Printf("b type is %T\n", b) fmt.Println("b = ", b)

    多個常量的聲明 const ( i int = 10 j float64 = 3.14 ) const ( i int = 10 j float64 = 3.14 ) const ( i = 10 j = 3.14 )

4.5 枚舉iota

  1. iota常量自動生成器,每個一行,自動累加1
  2. iota給常量賦值使用
  3. iota遇到const,重置為0
  4. 可以只寫一個iota
  5. 如果是同一行,值都一樣

如:

const (
    a = iota //0
    b = iota //1
    c = iota //2
)

const d = iota //重置為0

const (
    a1 = iota //0
    b1        //1
    c1        //2
)

const (
    i = iota //0
    j1, j2, j3 = iota, iota, iota //1
    k = iota  //2
)

5 數據類型

數據類型的作用:告訴編譯器這個數(變量)應該以多大的內存存儲

類型 名稱 長度 默認值 說明
bool 布爾類型 1 false true 或 fasle
byte 字節型 1 0 uint8別名,只能存儲英文字符
rune 字符類型 4 0 可以存儲英文或漢字字符,存儲unicode編碼,等價於uint32
int,uint 整型 4或8 0 有符號位和無符號位,32位或者64位
int8,uint8 整型 1 0 -128~127, 0~255
int16,uint16 整型 2 0  
int32,uint32 整型 4 0  
int64,uint64 整型 8 0  
float32 浮點型 4 0.0 小數精確到7位
float64 浮點型 8 0.0 小數精確到15位
complex64 復數類型 8    
complex128 復數類型 16    
uintptr 整型 4或8    
string 字符串      


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM