trả về nhiều giá trị của các hàm, hoặc đơn giản là bằng cách hoán đổi trực tiếp hai giá trị với cú pháp ngắn gọn. Go cho phép chúng ta hoán đổi hai giá trị mà không cần sử dụng biến tạm (temporary variable) như một số ngôn ngữ khác.
Để hoán đổi hai giá trị trong Go, bạn có thể sử dụng cú pháp:
a, b = b, a
Cú pháp này cho phép bạn gán lại giá trị của a
và b
một cách nhanh chóng, tức là giá trị của a
sẽ trở thành b
và ngược lại.
package main import "fmt" func main() { a := 5 b := 10 fmt.Println("Trước khi hoán đổi:") fmt.Println("a =", a) fmt.Println("b =", b) // Hoán đổi giá trị của a và b a, b = b, a fmt.Println("Sau khi hoán đổi:") fmt.Println("a =", a) fmt.Println("b =", b) }
Trước khi hoán đổi: a = 5 b = 10 Sau khi hoán đổi: a = 10 b = 5
a
chứa giá trị 5
và b
chứa giá trị 10
.a, b = b, a
, giá trị của a
được gán bằng giá trị của b
, và giá trị của b
được gán bằng giá trị của a
.a
và b
đã được hoán đổi cho nhau.Cú pháp này có thể được sử dụng để hoán đổi bất kỳ kiểu dữ liệu nào, miễn là cả hai giá trị có cùng kiểu dữ liệu. Ví dụ, bạn có thể hoán đổi hai chuỗi, hai giá trị kiểu float64
, hoặc thậm chí là hai con trỏ.
Ví dụ hoán đổi chuỗi:
package main import "fmt" func main() { str1 := "Hello" str2 := "World" fmt.Println("Trước khi hoán đổi:") fmt.Println("str1 =", str1) fmt.Println("str2 =", str2) // Hoán đổi hai chuỗi str1, str2 = str2, str1 fmt.Println("Sau khi hoán đổi:") fmt.Println("str1 =", str1) fmt.Println("str2 =", str2) }
Kết quả:
Trước khi hoán đổi: str1 = Hello str2 = World Sau khi hoán đổi: str1 = World str2 = Hello
a, b = b, a
.