日韩性视频-久久久蜜桃-www中文字幕-在线中文字幕av-亚洲欧美一区二区三区四区-撸久久-香蕉视频一区-久久无码精品丰满人妻-国产高潮av-激情福利社-日韩av网址大全-国产精品久久999-日本五十路在线-性欧美在线-久久99精品波多结衣一区-男女午夜免费视频-黑人极品ⅴideos精品欧美棵-人人妻人人澡人人爽精品欧美一区-日韩一区在线看-欧美a级在线免费观看

歡迎訪問 生活随笔!

生活随笔

當(dāng)前位置: 首頁 > 编程资源 > 编程问答 >内容正文

编程问答

go-study

發(fā)布時間:2023/12/19 编程问答 34 豆豆
生活随笔 收集整理的這篇文章主要介紹了 go-study 小編覺得挺不錯的,現(xiàn)在分享給大家,幫大家做個參考.

package (包)

  • 一個目錄下面所有的.go文件的包名必須相同. 包名一般和目錄名相同(是約定, 不是強制), 包名都小寫
  • main包是一個特殊的包名, 在main包中, 必須包含func main()函數(shù)
  • 導(dǎo)入包(import)的時候, 使用的是包所在目錄的路徑, 路徑中不用包含包的名字, 在使用包的時候,直接用包名(如 fmt.Println)

可見性規(guī)則

當(dāng)標(biāo)識符(包括常量、變量、類型、函數(shù)名、結(jié)構(gòu)字段等等)以一個大寫字母開頭,如:Group1,那么使用這種形式的標(biāo)識符的對象就可以被外部包的代碼所使用(客戶端程序需要先導(dǎo)入這個包),這被稱為導(dǎo)出(像面向?qū)ο笳Z言中的 public);標(biāo)識符如果以小寫字母開頭,則對包外是不可見的,但是他們在整個包的內(nèi)部是可見并且可用的(像面向?qū)ο笳Z言中的 private )。

聲明語句

Go語言主要有四種類型的聲明語句:var、const、type和func,分別對應(yīng)變量、常量、類型和函數(shù)實體對象的聲明

函數(shù)

main 和 init 函數(shù)既沒有參數(shù),也沒有返回類型

占位符??https://studygolang.com/articles/2644

  • %t? :?布爾類型
  • %p?:?指針,?表示為十六進制,并加上前導(dǎo)的0x
  • %s?:?字符串
  • %c?:?字符
  • %b ,?%o ,?%d?:?二進制 ,?八進制 ,?十進制
  • %x ,?%X?:?十六進制小寫 ,?十六進制大寫
  • %T?:?變量類型
  • %v?:?根據(jù)數(shù)據(jù)類型輸出對應(yīng)格式的值
  • %%?:?百分號
  • %q?:?用引號包含字符串
  • %5s , %-5s :?在格式化數(shù)字時,可以在動詞的“%”后面使用一個數(shù)字來控制結(jié)果圖形的寬度和精度。默認為右對齊, 在數(shù)字前面加上"-"可以左對齊
  • %06d :?使用0而不是空格填充, 對于數(shù)值類型會把填充的0放在正負號后面
  • %3.3f : 浮點數(shù)的寬度和精度

內(nèi)置函數(shù)

  • len : 返回某個類型的長度或數(shù)量
  • cap
  • new
  • make
  • new 和 make的區(qū)別? https://studygolang.com/articles/1890

數(shù)組

數(shù)組的長度和類型一起構(gòu)成了數(shù)組的類型, 比如 var array?

實現(xiàn)接口 https://www.jianshu.com/p/d87c69ac6ce7

當(dāng)涉及到我們該怎么讓我們的類型實現(xiàn)接口時,Go 語言是特別的一個。Go 語言不需要我們顯式的實現(xiàn)類型的接口。如果一個接口里的所有方法都被我們的類型實現(xiàn)了,那么我們就說該類型實現(xiàn)了該接口。

數(shù)據(jù)類型

  • 布爾類型不能接受其他類型的賦值,不支持自動或強制的類型轉(zhuǎn)換
  • int和int32在Go語言里被認為是兩種不同的類型

可賦值(這里不能叫類型轉(zhuǎn)換, 用可賦值表達更準(zhǔn)確些)

A value x is assignable to a variable of type T ("x is assignable to T") in any of these cases:
在一下這些情況值x可以賦值給類型為T的變量(x可以賦值給T)

1. x's type is identical to T.
1. x的類型和T的類型相同
2. x's type V and T have identical underlying types and at least one of V or T is not a named type.
2.?x和T具有相同的底層類型, 并且x和T至少有一個是非命名類型
3. T is an interface type and x implements T.
3. T是接口類型,x實現(xiàn)了T
4. x is a bidirectional channel value, T is a channel type, x's type V and T have identical element types, and at least one of V or T is not a named type.
4. x是雙向的chan類型的值, T是chan類型, x和T具有相同的元素類型, 并且x和T至少有一個是非命名類型
5. x is the predeclared identifier nil and T is a pointer, function, slice, map, channel, or interface type.
5. x的值為nil, 并且T是指針、函數(shù)、切片、映射、通道或接口類型
6. x is an untyped constant representable by a value of type T.
6. x是一個沒有指定類型的常量, 可以賦值給類型T(這里要遵循第一條原則, 但數(shù)字類型除外)

?

整型數(shù)據(jù)類型及取值范圍

類型字節(jié)范圍
int8?1?-128 ~ 127
uint8?1?0 ~ 255
int16?2?-32 768 ~ 32 767
uint16?2?0 ~ 65 535
int32?4?-2 147 483 648 ~ 2 147 483 647
uint32?4?0 ~ 4 294 967 295
int64?8?-9 223 372 036 854 775 808 ~ 9 223 372 036 854 775 807
uint64?8?0 ~ 18 446 744 073 709 551 615
int平臺相關(guān)??平臺相關(guān)
uint平臺相關(guān)?平臺相關(guān)?
uintptr?同指針在32位平臺下為4字節(jié),64位平臺下為8字節(jié)

?

goroutine/channel

  • goroutine是Go語言中的輕量級線程實現(xiàn),由Go運行時(runtime)管理
  • 函數(shù)調(diào)用前加上go關(guān)鍵字,這次調(diào)用就會在一個新的goroutine中并發(fā)執(zhí)行。當(dāng)被調(diào)用的函數(shù)返回時,這個goroutine也自動結(jié)束了。需要注意的是,如果這個函數(shù)有返回值,那么這個返回值會被丟棄。
  • 在沒有使用channel時,? Go程序從初始化main package并執(zhí)行main()函數(shù)開始,當(dāng)main()函數(shù)返回時,程序退出,且程序并不等待其他goroutine(非主goroutine)結(jié)束。
  • 在向channel中寫入數(shù)據(jù)前, 對channel的讀操作是阻塞的, 讀channel的位置就是同步goroutine的位置

?

總結(jié)

以上是生活随笔為你收集整理的go-study的全部內(nèi)容,希望文章能夠幫你解決所遇到的問題。

如果覺得生活随笔網(wǎng)站內(nèi)容還不錯,歡迎將生活随笔推薦給好友。