
Cấu trúc dữ liệu Go
Arrays, slices, maps, structs, pointers, make vs new, giá trị nil
1Slice trong Go là gì?
Slice trong Go là gì?
Câu trả lời
Slice là một khung nhìn động trên một array nền tảng, cho phép thao tác với các chuỗi phần tử có độ dài thay đổi. Khác với array vốn có kích thước cố định được xác định lúc biên dịch, slice có thể tăng hoặc giảm động thông qua các thao tác như append. Sự linh hoạt này khiến nó trở thành cấu trúc dữ liệu tuần tự được dùng phổ biến nhất trong Go để lưu trữ các tập hợp phần tử đồng nhất.
2Sự khác biệt chính giữa array và slice trong Go là gì?
Sự khác biệt chính giữa array và slice trong Go là gì?
Câu trả lời
Sự khác biệt cơ bản nằm ở kích thước: array có kích thước cố định được xác định lúc biên dịch và là một phần của chính kiểu dữ liệu, trong khi slice có kích thước động có thể thay đổi lúc chạy. Sự khác biệt này nghĩa là hai array có kích thước khác nhau được coi là các kiểu không tương thích, trong khi mọi slice cùng kiểu phần tử đều tương thích. Do đó slice linh hoạt hơn và được dùng phổ biến hơn trong mã Go hiện đại.
3Làm thế nào để tạo một slice rỗng trong Go?
Làm thế nào để tạo một slice rỗng trong Go?
Câu trả lời
Cú pháp literal với cặp ngoặc vuông rỗng theo sau là cặp ngoặc nhọn rỗng là cách thành ngữ để tạo một slice rỗng đã được khởi tạo. Cách này tạo ra một slice có độ dài 0 nhưng không nil, sẵn sàng nhận phần tử qua append. Khác với một khai báo đơn giản tạo ra slice nil, việc khởi tạo tường minh này đảm bảo một slice dùng được ngay mà không có nguy cơ hành vi bất ngờ khi thêm phần tử.
Nên dùng hàm nào để khởi tạo một slice với dung lượng cụ thể?
Điều gì xảy ra khi thêm một phần tử vào slice đã đạt đến dung lượng tối đa?
+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
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
Reflection
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í