golang鍙嶅皠鑾峰彇struct鎬庝箞瀹炵幇
鍦℅o璇█涓紝鍙互浣跨敤鍙嶅皠鏉ヨ幏鍙栫粨鏋勪綋鐨勪俊鎭€傞€氳繃鍙嶅皠锛屽彲浠ヨ幏鍙栫粨鏋勪綋鐨勫瓧娈点€佹柟娉曠瓑淇℃伅锛屼互鍙婂缁撴瀯浣撹繘琛屾搷浣溿€?br/>涓嬮潰鏄竴涓幏鍙栫粨鏋勪綋淇℃伅鐨勭ず渚嬩唬鐮侊細
```go
package main
import (
"fmt"
"reflect"
)
type User struct {
Name string
Age int
}
func main() {
user := User{Name: "Alice", Age: 20}
// 鑾峰彇缁撴瀯浣撶殑绫诲瀷
userType := reflect.TypeOf(user)
fmt.Println("Type:", userType)
// 鑾峰彇缁撴瀯浣撶殑瀛楁淇℃伅
for i := 0; i < userType.NumField(); i++ {
field := userType.Field(i)
fmt.Printf("Field %d: %s %s\n", i+1, field.Name, field.Type)
}
// 鑾峰彇缁撴瀯浣撶殑鏂规硶淇℃伅
for i := 0; i < userType.NumMethod(); i++ {
method := userType.Method(i)
fmt.Printf("Method %d: %s\n", i+1, method.Name)
}
}
```
杈撳嚭缁撴灉濡備笅锛?br/>```
Type: main.User
Field 1: Name string
Field 2: Age int
```
鍦ㄤ笂闈㈢殑绀轰緥涓紝鎴戜滑浣跨敤`reflect.TypeOf`鍑芥暟鏉ヨ幏鍙栫粨鏋勪綋鐨勭被鍨嬨€傞€氳繃绫诲瀷瀵硅薄锛屾垜浠彲浠ヤ娇鐢╜NumField`鏂规硶鑾峰彇缁撴瀯浣撶殑瀛楁鏁伴噺锛岀劧鍚庝娇鐢╜Field`鏂规硶鑾峰彇姣忎釜瀛楁鐨勪俊鎭€?br/>绫讳技鍦帮紝鎴戜滑杩樺彲浠ヤ娇鐢╜NumMethod`鏂规硶鑾峰彇缁撴瀯浣撶殑鏂规硶鏁伴噺锛岀劧鍚庝娇鐢╜Method`鏂规硶鑾峰彇姣忎釜鏂规硶鐨勪俊鎭€?br/>闇€瑕佹敞鎰忕殑鏄紝鍙嶅皠鐨勪娇鐢ㄩ渶瑕侀澶栫殑鎬ц兘寮€閿€锛屽洜姝ゅ湪鎬ц兘瑕佹眰杈冮珮鐨勫満鏅笅锛屽簲灏介噺閬垮厤杩囧鍦颁娇鐢ㄥ弽灏勩€?/p>
相关问答