Thông tin liên hệ
- 036.686.3943
- admin@nguoicodonvn2008.info
Slice trong Go là một cách linh hoạt và hiệu quả để biểu diễn mảng, và slice thường được sử dụng thay cho mảng vì kích thước động và các tính năng bổ sung của chúng. Dưới đây là những điều bạn cần biết về Slice trong Golang.

Một slice là tham chiếu đến một phần của mảng. Đây là cấu trúc dữ liệu mô tả một phần của mảng bằng cách chỉ định chỉ mục bắt đầu và độ dài của phần đó. Điều này cho phép bạn làm việc với một phần của mảng như thể đó là một mảng độc lập. Trong ngôn ngữ Go, slice mạnh hơn, linh hoạt hơn, tiện lợi hơn mảng và là cấu trúc dữ liệu nhẹ. Slice là một chuỗi có độ dài biến đổi, lưu trữ các phần tử có cùng kiểu, bạn không được phép lưu trữ các phần tử có kiểu khác nhau trong cùng một slice.
Nó giống như một mảng có giá trị chỉ mục và độ dài, nhưng kích thước của slice được thay đổi, chúng không có kích thước cố định giống như một mảng. Về nội bộ, slice và mảng được kết nối với nhau, một slice là tham chiếu đến một mảng cơ bản. Nó được phép lưu trữ các phần tử trùng lặp trong slice.
Vị trí chỉ mục đầu tiên trong một slice của Golang luôn là 0 và vị trí chỉ mục cuối cùng sẽ là (chiều dài của slice- 1).
Hãy cùng xem xét ví dụ dưới đây để hiểu cách tạo slice trong Golang
package main
import "fmt"
func main() {
array := [5]int{1, 2, 3, 4, 5}
slice := array[1:4]
fmt.Println("Array: ", array)
fmt.Println("Slice: ", slice)
}
Kết quả:
Array: [1 2 3 4 5] Slice: [2 3 4]
Trong ví dụ này, mảng được tạo với 5 phần tử và slice được tạo bằng cách chỉ định chỉ mục bắt đầu là 1 và độ dài là 4. Slice hiện chứa các phần tử 2, 3 và 4 từ mảng ban đầu.
Các lát cắt là động, có nghĩa là kích thước của chúng có thể thay đổi k
Slice: [1 2 3 4 5 6]
hi bạn thêm hoặc xóa phần tử. Go cung cấp một số hàm tích hợp cho phép bạn sửa đổi các slice, chẳng hạn như thêm, sao chép và xóa.
Ví dụ cách thêm phần tử vào một slice trong Golang:
package main
import "fmt"
func main() {
slice := []int{1, 2, 3}
slice = append(slice, 4, 5, 6)
fmt.Println("Slice: ", slice)
}
Kết quả:
Slice: [1 2 3 4 5 6]
Trong ví dụ này, hàm append được sử dụng để thêm các phần tử 4, 5, 6 vào slice slice. Kết quả là một slice mới chứa các phần tử 1, 2, 3, 4, 5, 6.
Slice trong Go là một cấu trúc dữ liệu mạnh mẽ và linh hoạt có thể được sử dụng để biểu diễn mảng. Chúng cung cấp một cách làm việc với mảng năng động và hiệu quả hơn và được sử dụng rộng rãi trong các chương trình Go.
Một slice được khai báo giống như một mảng, nhưng nó không chứa kích thước của slice. Vì vậy, nó có thể tăng hoặc giảm tùy theo yêu cầu.
Cú pháp:
[]T
or
[]T{}
or
[]T{value1, value2, value3, ...value n}
Ở đây, T là kiểu phần tử. Ví dụ:
var my_slice[]int
Một slice chứa ba thành phần:
Chúng ta hãy thảo luận về tất cả các thành phần này với sự trợ giúp của một ví dụ:
Ví dụ:
//Chương trình Golang minh họa
// hoạt động của các thành phần slice
package main
import "fmt"
func main() {
// Tạo một mảng
arr := [7]string{"This", "is", "the", "tutorial",
"of", "Go", "language"}
// Hiện mảng
fmt.Println("Array:", arr)
// Tạo một slice
myslice := arr[1:6]
// Hiện slice
fmt.Println("Slice:", myslice)
// Hiện chiều dài của slice
fmt.Printf("Length of the slice: %d", len(myslice))
// Hiển thị dung lượng của slice
fmt.Printf("\nCapacity of the slice: %d", cap(myslice))
}
Kết quả:
Array: [This is the tutorial of Go language] Slice: [is the tutorial of Go] Length of the slice: 5 Capacity of the slice: 6
Ở ví dụ trên, chúng ta tạo một slice từ mảng đã cho. Ở đây, con trỏ của slice trỏ đến chỉ mục 1 vì giới hạn dưới của slice được đặt thành một nên nó bắt đầu truy cập các phần tử từ chỉ mục 1. Độ dài của slice là 5, nghĩa là tổng số phần tử có trong slice là 5 và dung lượng của slice là 6 nghĩa là nó có thể lưu trữ tối đa 6 phần tử trong đó.
Trong ngôn ngữ Go, một slice có thể được tạo và khởi tạo bằng những cách sau:
Sử dụng slice literal: Bạn có thể tạo một slice bằng slice literal. Việc tạo slice literal cũng giống như một array literal, nhưng với một điểm khác biệt là bạn không được phép chỉ định kích thước của slice trong dấu ngoặc vuông []. Như được hiển thị trong ví dụ bên dưới, vế phải của biểu thức này là slice literal.
var my_slice_1 = []string{"Geeks", "for", "Geeks"}
Lưu ý: Luôn nhớ rằng khi bạn tạo một slice bằng chuỗi ký tự, trước tiên nó sẽ tạo một mảng và sau đó trả về một tham chiếu slice cho mảng đó.
Ví dụ:
// Chương trình Go minh họa cách
// tạo một slice bằng một slice
// literal
package main
import "fmt"
func main() {
// Tạo một slice
// bằng key var
var my_slice_1 = []string{"Geeks", "for", "Geeks"}
fmt.Println("My Slice 1:", my_slice_1)
// Tạo một slice
//bằng khai báo viết tắt
my_slice_2 := []int{12, 45, 67, 56, 43, 34, 45}
fmt.Println("My Slice 2:", my_slice_2)
}
Kết quả:
My Slice 1: [Geeks for Geeks] My Slice 2: [12 45 67 56 43 34 45]
Như chúng ta đã biết, slice là tham chiếu của mảng nên bạn có thể tạo một slice từ mảng đã cho. Để tạo một slice từ mảng đã cho, trước tiên bạn cần chỉ định giới hạn dưới và trên, nghĩa là slice có thể lấy các phần tử từ mảng bắt đầu từ giới hạn dưới đến giới hạn trên. Nó không bao gồm các phần tử ở trên từ giới hạn trên. Như thể hiện trong ví dụ bên dưới:
Cú pháp:
array_name[low:high]
Cú pháp này sẽ trả về một slice mới.
Lưu ý: Giá trị mặc định của giới hạn dưới là 0 và giá trị mặc định của giới hạn trên là tổng số phần tử có trong mảng đã cho.
Ví dụ:
// Chương trình Go minh họa cách
// tạo slice từ mảng
package main
import "fmt"
func main() {
// Tạo một mảng
arr := [4]string{"Geeks", "for", "Geeks", "GFG"}
// Tạo slice từ mảng được cung cấp
var my_slice_1 = arr[1:2]
my_slice_2 := arr[0:]
my_slice_3 := arr[:2]
my_slice_4 := arr[:]
// Hiện kết quả
fmt.Println("My Array: ", arr)
fmt.Println("My Slice 1: ", my_slice_1)
fmt.Println("My Slice 2: ", my_slice_2)
fmt.Println("My Slice 3: ", my_slice_3)
fmt.Println("My Slice 4: ", my_slice_4)
}
Kết quả:
My Array: [Geeks for Geeks GFG] My Slice 1: [for] My Slice 2: [Geeks for Geeks GFG] My Slice 3: [Geeks for] My Slice 4: [Geeks for Geeks GFG]
Nguồn tin: Quantrimang.com:
Ý kiến bạn đọc
Những tin mới hơn
Những tin cũ hơn
Cách phát triển sự nghiệp trong kỷ nguyên AI: 10 bước giúp bạn luôn giữ lợi thế
TOP công cụ AI tạo danh sách công việc tốt nhất
So sánh 27 mô hình Claude
So sánh 27 mô hình Claude
Thêm danh sách SharePoint vào Copilot Studio
Kimi vs ChatGPT: Đâu là trợ lý AI tốt hơn?
Cách thêm watermark AI trong Photos Windows
8 trường hợp sử dụng Claude Cowork tự động hóa doanh nghiệp giúp tiết kiệm nhiều giờ mỗi tuần
Prompt tạo phiếu luyện viết đoạn văn cho học sinh Tiểu học
TOP công cụ nhân hóa văn bản AI tự nhiên nhất
Cách thêm watermark AI trong Paint Windows 11
9 Chrome extension hữu ích cho ChatGPT
9 dấu hiệu nhận biết hình ảnh do AI tạo ra
Cách tìm lại file, ảnh và tin nhắn cũ trên ChatGPT trong vài giây
Cách chỉnh sửa video trên Google Vids bằng câu lệnh
TOP phần mềm trợ lý bán hàng AI tốt nhất
Prompt AI biến ảnh chân dung thành tranh biếm họa chuyên nghiệp cực đẹp
TOP lựa chọn thay thế OpenClaw tốt nhất
Hướng dẫn kiểm tra độ trùng lặp SKKN hiệu quả
Hướng dẫn làm trò chơi nghiêng đầu chọn đáp án