1、變數有兩種宣告方式:
var name string //完整變數宣告
name := "yan" //短變數宣告
2、如果內層變數使用:=去定義,會產生內部變數 ,但不影響外部變數 ;
如果內層的賦值用= 則會直接使用外部變數操作,會對外部變數造成修改;
如果內層的賦值用=的時候不能加var,加了var還是新變數。
func fun1()
fmt.println(name) //1
}
執行結果:1 2 1
3、重名變數會有遮蔽現象,有個很形象的比喻:強龍不壓地頭蛇。
4、包引入:import . ***
中間的"."會讓這個「***」包中公開的程式實體被當前原始碼檔案中的**,視為當前**包的實體。比如,如果**包引用語句:import . fmt,那麼在當前的原始檔中我們引用fmt.printf函式的時候直接用printf就可以。
5、在 go 語言中,inte***ce{}代表空介面,任何型別都是它的實現型別。比如:
value, ok := inte***ce{}(container).(string)
以上表示式,包括了把container變數的值轉換為空介面值的inte***ce{}(container),以及乙個用來判斷前者型別是否為切片型別string的.(string)
6、雖然直接把乙個整數值轉換為string型別是可行的,但是得注意,被轉換的數值必須可以代表乙個有效的unicode**點,否則轉換的結果將會是「�」。字元'�'的 unicode **點是u+fffd,它是 unicode 標準中定義的 replacement character,專用於替換那些未知的、不可替換的以及不可展示的字元。
string(-1) //輸出�
Go語言核心36講23
我在上兩篇文章中,詳細地講述了go語言中的錯誤處理,並從兩個視角為你總結了錯誤型別 錯誤值的處理技巧和設計方式。在本篇,我要給你展示go語言的另外一種錯誤處理方式。不過,嚴格來說,它處理的不是錯誤,而是異常,並且是一種在我們意料之外的程式異常。這種程式異常被叫做panic,我把它翻譯為執行時恐慌。其...
go語言核心36講要點概括(6 10)
06 程式實體的那些事兒 下 package main import fmt var container string func main 輸出one println container 1 如何判斷container型別 value,ok inte ce container string 它包括了...
go語言核心程式設計 Go 語言核心檔案除錯
程式除錯對於檢查和理解程式執行過程和狀態是非常有用的。乙個核心轉儲檔案 core dump file 中包含程式程序執行時的記憶體資訊和程序狀態。它主要用於程式的問題除錯,以及在執行過程中理解程式的狀態。這些對於我們診斷程式問題原因和分析生產環境中的服務問題有非常大的幫助。在本文中,我會用乙個非常簡...