Golang dấu 3 chấm ... trong append dùng để làm gì?

#TIL

Trong go, dấu ... có 2 ý nghĩa dùng để diễn tả số lượng biến chưa xác định của một hàm (ví dụ như append) và dùng để unpack (bung) các giá trị của một slice thành các biến của một hàm nhận nhiều biến

Ví dụ cụ thể, Sau khi chạy đoạn code sau

s := []int{0, 1, 1}
a := []int{2, 3, 5, 7, 11, 13}
s = append(s, a...)
fmt.Println(s)

Thì giá trị của s bây giờ là

[0 1 1 2 3 5 7 11 13]

Lý do là vì đoạn code s = append(s, a...) tương đương với

s = append(s, 2, 3, 5, 6, 11, 13)

Chạy thử: https://play.golang.org/p/lrpO0MhR-_G

3 Likes

em cũng thấy bên JavaScript có Spread Operator cũng giống như thế này :smiley:

2 Likes
83% thành viên diễn đàn không hỏi bài tập, còn bạn thì sao?