Sử dụng sự phản chiếu, chúng ta có thể nhận được tên kiểu, kích thước lưu trữ và hàm của kiểu đã cho (chẳng hạn như uint64, struct do người dùng định nghĩa và vv). Thậm chí, chúng ta có thể sửa đổi một số trường của kiểu đã cho. Golang thực hiện phản xạ như thế nào? Tôi đoán các cách sau đây:Golang thực hiện phản chiếu như thế nào?
Mọi loại golang, bao gồm cả loại do người dùng xác định, chính nó có thông tin về tên loại, tên trường và tên hàm. Golang phản ánh chỉ đọc những thông tin này hoặc gọi hàm.
Thông qua một số cơ chế, Golang có thể nhận được tên loại, dung lượng lưu trữ và cứ thế. Và chính loại đó không có những thông tin này.
Tôi đã đọc mã phản chiếu golang. Tôi đoán rằng golang sử dụng cách thứ hai. Ai có thể mô tả triển khai cụ thể của sự phản chiếu? Hoặc giới thiệu cho tôi một số tài liệu? Đọc tất cả các mã là khó khăn đối với tôi.
Nói một cách đơn giản, cách phản ánh của golang nhận thông tin về loại, chẳng hạn như tên loại, kích thước lưu trữ, trường, chức năng, v.v. Thậm chí, sự phản chiếu có thể đặt giá trị. –