共計 523 個字符,預計需要花費 2 分鐘才能閱讀完成。
在 Go 語言中,可以使用 reflect.New() 函數(shù)來實例化一個指定類型的對象。reflect.New()函數(shù)接受一個 reflect.Type 參數(shù),返回一個指向該類型的新分配的零值的指針。
以下是一個使用反射實例化對象的示例:
package main
import ("fmt"
"reflect"
)
type Person struct {Name string
Age int
}
func main() {pType := reflect.TypeOf(Person{})
pValue := reflect.New(pType)
p := pValue.Interface().(*Person)
p.Name = "Alice"
p.Age = 25
fmt.Println(p)
}
在上面的示例中,首先使用 reflect.TypeOf() 函數(shù)獲取 Person 類型的反射對象。然后使用 reflect.New() 函數(shù)傳入反射對象,返回一個指向 Person 類型的新分配的零值的指針。最后使用 Interface() 方法將反射值轉換為接口值,并通過類型斷言將其轉換為 *Person 類型的指針。
輸出結果為:
&{Alice 25}
這樣就通過反射實例化了一個 Person 類型的對象。
丸趣 TV 網(wǎng) – 提供最優(yōu)質(zhì)的資源集合!
正文完