Go

Reflection

package reflect, kiểm tra kiểu, thao tác giá trị, struct tags, trường hợp sử dụng, hiệu năng

20 câu hỏi phỏng vấn·
Senior
1

Package reflect trong Go là gì?

Câu trả lời

Package reflect cho phép kiểm tra và thao tác các kiểu và giá trị tại thời điểm chạy (runtime). Nó được dùng để triển khai các thư viện tổng quát (marshaling JSON, ORM), nhưng việc sử dụng trực tiếp trong code ứng dụng không được khuyến khích vì nó hy sinh tính an toàn kiểu và hiệu năng.

2

Làm thế nào để lấy kiểu của một biến với package reflect?

Câu trả lời

Hàm reflect.TypeOf() trả về một reflect.Type biểu diễn kiểu động của interface được truyền làm đối số. Nếu biến là nil, reflect.TypeOf() trả về nil. Sử dụng .Kind() trên Type trả về cho phép lấy danh mục kiểu (int, string, struct, v.v.).

3

Sự khác biệt giữa reflect.Type và reflect.Value là gì?

Câu trả lời

reflect.Type biểu diễn metadata của kiểu (tên, kind, các phương thức, các trường) và được lấy qua reflect.TypeOf(). reflect.Value biểu diễn giá trị cụ thể và cho phép đọc hoặc sửa đổi nó qua reflect.ValueOf(). Cả hai bổ sung cho nhau: Type mô tả 'cái gì' và Value chứa 'dữ liệu'.

4

Làm thế nào để sửa đổi giá trị của một biến thông qua reflection?

5

reflect.Kind là gì?

+17 câu hỏi phỏng vấn

Nắm vững Go cho lần phỏng vấn tiếp theo

Truy cập tất cả câu hỏi, flashcards, bài kiểm tra kỹ thuật, bài tập code review và mô phỏng phỏng vấn.

Bắt đầu miễn phí