unicode
Trong phát triển ngôn ngữ Go, việc cắt chuỗi là thao tác tần suất cao, đặc biệt khi liên quan đến xử lý hỗn hợp tiếng Trung và tiếng Anh cần đặc biệt chú ý vấn đề mã hóa. Bài viết này hệ thống梳理 4 phương án cắt chuỗi chủ lưu trong ngôn ngữ Go, kết hợp ví dụ code phân tích điểm kỹ thuật.
Phương án xử lý Unicode an toàn
Thông qua chuyển đổi []rune để thực hiện cắt an toàn cấp ký tự:
go
func main() {
str := "Hello, 世界!"
runes := []rune(str)
// Cắt an toàn cấp ký tự
sub3 := string(runes[7:9])
fmt.Println("Cắt an toàn tiếng Trung:", sub3) // Đầu ra: 世界
}So sánh kỹ thuật:
| Phương án | Độ phức tạp thời gian | Chi phí bộ nhớ | Kịch bản áp dụng |
|---|---|---|---|
| Slice byte | O(1) | Thấp | Chuỗi thuần ASCII |
| Chuyển đổi []rune | O(n) | Cao | Chuỗi chứa ký tự đa byte |
