go語言摘記

2022-01-11 11:51:06 字數 1495 閱讀 3450

基本法則:

1)在最外部宣告的函式、型別、變數都要從其關鍵字開始。如func、type、var...

2)任何**都要以包為單位封裝和被呼叫。

3)大括號的前括號要在行末,後括號要另起一行行首。

4)函式內宣告的臨時變數必須要使用。如要放棄接收變數可使用_符號接收值表示忽略。

5)最外部宣告的函式、型別、變數如果是首字母大寫,表示公開,可被其他包使用。小寫表示不公開。

一 包1)包名頂行寫:

package 包名

2)匯入用import關鍵字,多個包可以使用符號()進行組合

import "包路徑"

3)包名為包路徑最後一段名字

一 變數

1)標準格式:

var 變數名 型別

2)宣告時直接賦值可以省略型別,由其自動推導

3)宣告時直接賦值可以省略var,使用:=符號簡寫。該語法僅能在函式內使用。因為與更高階別的法則衝突:在最外部宣告的函式、型別、變數都要從其關鍵字開始。

二 函式

1)標準格式:

func 函式名(引數1 引數1型別, 引數2 引數2型別) (返回值 返回值型別) {

2)與宣告變數相似的,引數、返回值的型別也要放在名稱之後。這樣做的理由是更易讀,比如當複雜函式做引數傳遞時。

3)函式返回值可以多個。也可以給返回值變數命名。

三 結構

1)標準格式:

type 結構名 struct{

成員變數名 型別,

2)結構的建立:省略成員名可以按順序初始化;不省略名稱則不需要順序。

3)type可以用來給別的型別起別名。當然之後需要顯式轉型。

4)通過.操作符獲取結構內的成員。

四 指標

1)go有指標型別,用*表示,*出現在型別前方。

2)go沒有指標運算

3)獲取變數的引用通過取位址符&獲取。同理可以在型別建立的時候直接&獲取其引用。

4)引用變數的值要通過 *變數名 獲取,*出現在變數名前方。

5)如果是指標型別的結構,可以通過.操作符直接呼叫型別成員。(*p).name和p.name的效果相同。

五 方法

1)go沒有類,但可以用型別作為函式的接收器實現結構的方法。本質上就是函式的第乙個引數為該型別。

2)不能給除自身包之外的型別新增方法。

3)方法的語法結構:

func (接收器變數 接收器型別) 函式名(引數)返回值{

4)使用方法,就是在型別變數後面使用.操作符。

5)接收器可以是指標型別。因為go語言的傳參本質就是拷貝,所以傳遞指標型別變數可以用於修改值。效果等同函式。

6)當使用指標型別接收器的時候,使用方法也可以直接通過.操作符。(*p).add()和p.add()的效果相同。

7)當接收器不是指標型別的時候,引用型別的變數也可以使用.操作符直接呼叫方法。但是要注意的是go的傳參始終都是值拷貝。

8)上述特性與函式引數不同,函式引數型別必須與宣告的引數型別一致,不然無法通過編譯。

六 介面

Go語言之GO 語言常量

相對於變數,常量是恆定不變的值,多用於定義程式執行期間不會改變的那些值。常量的宣告和變數宣告非常類似,只是把var換成了const,常量在定義的時候必須賦值。const pi 3.1415 const e 2.7182宣告了pi和e這兩個常量之後,在整個程式執行期間它們的值都不能再發生變化了。多個常...

Go 初學Go語言

馬上要去實習了,要開始實戰了 今天在這總結一些基礎用法,方便後面自己查閱 總結的參考資料為go by example,一邊複習一邊記錄 go by example var a string initial var b,c int 1 2 一次宣告多個 var d true 自動推斷型別 var e ...

五 go語言特性 go語言筆記

defer 呼叫乙個被 defer 的函式時在函式剛要返回之前延遲執行,當函式無論怎樣返回,某資源必須釋放時,可用這種與眾不同 但有效的處理方式。傳統的例子包括解鎖互斥或關閉檔案。package main import log func main mydefer func mydefer func ...