go語言學習記錄

1.只有當某個函數需要被外部包調用的時候才使用大寫字母開頭,並遵循 Pascal 命名法;否則就遵循駱駝命名法,即第一個單詞的首字母小寫,其餘單詞的首字母大寫。

2.   (:=)   是聲明加賦值   (=) 只有賦值

3. 安裝完之後 需要配置go的環境變量 , 編輯器可以選擇jitbrain公司的 goland,配置完環境之後可以用go env來查看環境變量

4.不同的作用域,允許定義同名的變量,使用變量的原則,就近原則,如果局部變量沒有,就去全局變量中找

5.獲取參數類型方法

import "fmt"
func main() {
    v := "hello world"
    fmt.Println(typeof(v))
}
func typeof(v interface{}) string {
    return fmt.Sprintf("%T", v)
}

6.Go 中不允許不同類型之間的混合使用,但是對於常量的類型限制非常少,因此允許常量之間的混合使用(int和int64)不能混用

7.type TZ int 中,TZ 就是 int 類型的新名稱  type關鍵字用於起別名

8.strings包來操作字符串

具體查看帖子 https://github.com/Unknwon/the-way-to-go_ZH_CN/blob/master/eBook/04.7.md

9.對於時間的操作

package main
import (
	"fmt"
	"time"
)

var week time.Duration
func main() {
	t := time.Now()
	fmt.Println(t) // e.g. Wed Dec 21 09:52:14 +0100 RST 2011
	fmt.Printf("%02d.%02d.%4d\n", t.Day(), t.Month(), t.Year())
	// 21.12.2011
	t = time.Now().UTC()
	fmt.Println(t) // Wed Dec 21 08:52:14 +0000 UTC 2011
	fmt.Println(time.Now()) // Wed Dec 21 09:52:14 +0100 RST 2011
	// calculating times:
	week = 60 * 60 * 24 * 7 * 1e9 // must be in nanosec
	week_from_now := t.Add(time.Duration(week))
	fmt.Println(week_from_now) // Wed Dec 28 08:52:14 +0000 UTC 2011
	// formatting times:
	fmt.Println(t.Format(time.RFC822)) // 21 Dec 11 0852 UTC
	fmt.Println(t.Format(time.ANSIC)) // Wed Dec 21 08:56:34 2011
	fmt.Println(t.Format("02 Jan 2006 15:04")) // 21 Dec 2011 08:52
	s := t.Format("20060102")
	fmt.Println(t, "=>", s)
	// Wed Dec 21 08:52:14 +0000 UTC 2011 => 20111221
    timeUnix:=time.Now().Unix()            //單位s,打印結果:1491888244
}

10. if  else    和  switch   的話跟c++沒有任何區別 ,注意大括號位置     fallthrough  關鍵字就是直接往下走

11. 函數返回值可以是多個值 ,括號後面加括號實現  func ThreeValues() (int, int, float32) { return 5, 6, 7.5 }

 

 

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章