Cách tốt nhất để kiểm tra xem một giá trị nhất định có nằm trong một lát chuỗi không? Tôi sẽ sử dụng một Set bằng ngôn ngữ khác, nhưng Go không có.Kiểm tra xem một lát chuỗi có chứa một giá trị nhất định trong Go
thử tốt nhất của tôi là thế này cho đến nay:
package main
import "fmt"
func main() {
list := []string{"a", "b", "x"}
fmt.Println(isValueInList("b", list))
fmt.Println(isValueInList("z", list))
}
func isValueInList(value string, list []string) bool {
for _, v := range list {
if v == value {
return true
}
}
return false
}
http://play.golang.org/p/gkwMz5j09n
Giải pháp này nên được ok cho lát nhỏ, nhưng phải làm gì để lát với nhiều yếu tố?
Đối với thành ngữ Bạn có thể sử dụng 'map [keyType] struct {}' (một cấu trúc có kích thước bằng không rỗng là giá trị) hoặc 'map [keyType] bool' cho điều này và ** not ** uint8 như được hiển thị. Đối với trường hợp trước, bạn sử dụng cấu trúc '_, ok: = set [item]' được hiển thị. Nếu sử dụng bool bạn chỉ có thể làm 'if set [item]' như các mục không tồn tại trả về ["zero value"] (https://golang.org/ref/spec#The_zero_value), cho bool là false. –