
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
1Package reflect trong Go là gì?
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.
2Làm thế nào để lấy kiểu của một biến với package reflect?
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.).
3Sự khác biệt giữa reflect.Type và reflect.Value là gì?
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'.
Làm thế nào để sửa đổi giá trị của một biến thông qua reflection?
reflect.Kind là gì?
+17 câu hỏi phỏng vấn
Các chủ đề phỏng vấn Go khác
Kiến thức cơ bản về Go
Cấu trúc dữ liệu Go
Interface trong Go
Xử lý lỗi
Cơ bản về Goroutine
Channels
Go Modules
Máy chủ HTTP
HTTP Client
Mã hóa JSON
Database/SQL
Gói context
Testing
Các mẫu Concurrency
Primitive đồng bộ hóa
Framework web Go
Thiết kế API REST
gRPC
Quản lý bộ nhớ
Tối ưu hóa hiệu năng
Generics
Go Design Patterns
Microservices
Bảo mật và Xác thực
Docker & Containerization
Kubernetes Basics
Go Nâng cao
Phát triển CLI
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í