C#/Java 程序員轉GO/golang程序員筆記大全(day 01)

前言:編程

  整理一下學習 Go 語言的筆記,做爲一名老程序,學習一名新的開發語言天然不須要像小白那樣從 HelloWorld 看起。閉包

  簡單整理一下 Go 的一些差別處,但願對你們學習 go 有點幫助,不正確的地方還請指教!函數

 

1、環境搭建:學習

  博客園不少教程,自行解決,推薦使用 VS Code 綠燈 + 插件的方式,簡單粗暴好用spa

 

2、第一課筆記整理:插件

基礎語法:
// --------------------------------------- 變量聲明code

var [名稱] [類型]
var name string

// 自動推導類型
[名稱] := [值]
name := ""

// 類型轉換
str := "666"
var i = 0
i = (int)str

 

// ---------------------------------------  range 迭代器blog

str := "abc"
for i, data := range str { // data 可省略
  fmt.Println(i, data)
}

 

// ---------------------------------------  函數定義教程

// 函數名首字母小寫即爲 private,大寫即爲 public
func [函數名](形參) (返回值) {
    // 方法體
    return 參數1, 參數2
}
// 不定參數類型(切片)
func [函數名](args ...string)(返回值) {
    // ....
}
// 匿名變量
num1, _ := Func()

 

// ---------------------------------------  回調函數(多態)開發

 

// ---------------------------------------  匿名函數與閉包

func main() {
    a := 10
    f1 := func() {
         // 閉包是以引用的方式捕獲外部變量
        // print(a)
    }

    f1()
    // 給一個函數類型起別名
    type FuncType func()
    var f2 FuncType
    f2 = f1
    f2()

    // 定義匿名函數,同時調用
    func() {
        // ..
    }() // 後面的()表明調用此匿名函數
    // 帶參數同理
}

 

 
// ---------------------------------------  閉包的特色(裝逼用法)

 

// --------------------------------------- defer 關鍵字做用(延緩調用,相似析構函數)

方法體類,執行結束後執行,經常使用一些關閉鏈接、關閉 IO 等操做

注意:

1、多個 defer 狀況下,是先進後出的順序

2、defer 能夠用與匿名函數的調用,如:defer func () { ... }

 


// --------------------------------------- 工程管理

1、分文件編程(多個源文件)
2、設置 GOPATH 環境變量
3、同目錄必須包名一致
4、go env 查看相關環境路徑
5、同一目錄,直接調用文件函數便可,無需包名

// 包引用
import (
  // 默認不調用 init 方法
  _"fmt"
)

 
// --------------------------------------- 工程管理

if 變量名:a, a < 10 {
    // ...
}
相關文章
相關標籤/搜索