'Set 's in Python과 비슷한 Go 컬렉션이 있습니까?집합이 이동에 있습니까? (파이썬에서와 같이)
대안 : 이동에 설정을 구현하는 쉬운 방법
- 있습니까?
- 슬라이스에서 중복을 제거 할 수있는 방법이 있습니까?
'Set 's in Python과 비슷한 Go 컬렉션이 있습니까?집합이 이동에 있습니까? (파이썬에서와 같이)
대안 : 이동에 설정을 구현하는 쉬운 방법
map[whatevertype]bool
일 수 있으며 값을 true
으로 설정할 수 있습니다. 슬라이스의 모든 요소를 맵 키로 추가 한 다음 range
을 사용하여 유일한 요소 만 다시 가져올 수 있습니다.
package main
import "fmt"
func main() {
m := make(map[string]bool)
s := make([]string, 0)
s = append(s, "foo")
s = append(s, "foo")
s = append(s, "foo")
s = append(s, "bar")
s = append(s, "bar")
for _, r := range s {
m[r] = true
}
s = make([]string, 0)
for k, _ := range m {
s = append(s, k)
}
fmt.Printf("%v\n", s)
}
이 시점에서 golang에는 설정된 구현이 없습니다. 당신 스스로 그것을하거나 제 3자를 얻을 필요가있을 것입니다.
http://openmymind.net/2011/7/15/Learning-Go-By-Benchmarking-Set-Implementation
난 그냥 당신이 그것에 대해 신경 쓰지 않기 때문에 실제로, 값으로 임의의 유형을 사용할 수있는 추가 할 : 또한 여기 좋은 블로그 게시물입니다. 그러나 'bool'을 항상 true로 설정하면 요소를 색인화하여 존재하는지 테스트 할 수 있다는 부가적인 이점이 있습니다. 왜냐하면 키를 색인화 할 때 존재하지 않는다면 값 유형에 0을 반환하고, 부울에 대해서는 거짓입니다. – newacct