2011-08-12 3 views

답변

8

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) 
} 
+3

난 그냥 당신이 그것에 대해 신경 쓰지 않기 때문에 실제로, 값으로 임의의 유형을 사용할 수있는 추가 할 : 또한 여기 좋은 블로그 게시물입니다. 그러나 'bool'을 항상 true로 설정하면 요소를 색인화하여 존재하는지 테스트 할 수 있다는 부가적인 이점이 있습니다. 왜냐하면 키를 색인화 할 때 존재하지 않는다면 값 유형에 0을 반환하고, 부울에 대해서는 거짓입니다. – newacct

관련 문제