反射
反射是什麼
反射的概念是由smith在2023年首次提出的,主要是指程式可以訪問、檢測和修改它本身狀態或行為的一種能力。
go 語言提供了一種機制在執行時更新變數和檢查它們的值、呼叫它們的方法,但是在編譯時並不知道這些變數的具體型別,這稱為反射機制
不是很理解反射,不懂這個有什麼用。感覺這個就和執行時申請記憶體差不多?
反射的作用
1.在編寫不定傳參型別函式的時候,或傳入型別過多時
2.不確定呼叫哪個函式,需要根據某些條件來動態執行
反射的實現
go的反射基礎是介面和型別系統,go的反射機制是通過介面來進行的。
go 語言在 reflect 包裡定義了各種型別,實現了反射的各種函式,通過它們可以在執行時檢測型別的資訊、改變型別的值。
GO語言初探
學習參考 學習go語言 q1.0 for loop 1.建立乙個基於 for 的簡單的迴圈。使其迴圈 10 次,並且使用 fmt 包列印出計數 器的值。package main func main 用 goto 改寫 1 的迴圈。關鍵字 for 不可使用。package main func main...
Go語言初探
大寫字母開頭變數為共有變數,小寫字母開頭為私有變數 函式類似 iota列舉 預設開始值為0,const中每增加一行,值加1 引用型別 類似於動態陣列 相比於array,它沒有長度限制 由於可隨意跳轉,在龐大的系統中不利於debug,所以在coding中會通過結構化程式設計來規避這類問題,那麼,在go...
go語言初探 三
說真的看到go的語法後,我還有點不習慣,感覺它的語法規則很奇怪。但或許就是這樣的語法規則讓它的執行速度變快?這也未可知。在go裡有變數和常量,但沒有列舉。列舉可以用關鍵字const去模擬。常量只能是布林型 數字型 整數型 浮點型和複數 和字串型。編譯器可以根據變數的值來判斷型別。go裡面宣告變數的方...