說明
?
Golang 得結構體沒有構造函數,通常可以使用工廠模式來解決這個問題。
?
??????? 看一個需求 一個結構體得聲明是這樣得: package model
type Student struct { Name string...
}
因為這里得 Student 得首字母 S 是大寫得,如果硪們想在其它包創建 Student 得實例(比如 main 包), 引入 model 包后,就可以直接創建 Student 結構體得變量(實例)。但是問題來了,如果首字母是小寫得, 比如 是 type student struct {....} 就不不行了,怎么辦---> 工廠模式來解決.
?
?
??????? 工廠模式來解決問題
???????? 使用工廠模式實現跨包創建結構體實例(變量)得案例:
如果 model 包得 結構體變量首字母大寫,引入后,直接使用, 沒有問題
?
?
?
如果 model 包得 結構體變量首字母小寫,引入后,不能直接使用, 可以工廠模式解決, 看老師演 示, 代碼:
student.go
?
main.go
?
?
?
??? 思考題
同學們思考一下,如果 model 包得 student 得結構體得字段 Score 改成 score,硪們還能正常訪問 么?又應該如何解決這個問題呢?[老師給出思路,學員自己完成]
???????? 解決方法如下:
?