scala의 underscore(_)의 특징이 go lang에도 있는 것 같다. 나는 스칼라의 underscore를 '거시기'로 생각했다.
http://stackoverflow.com/questions/8000903/what-are-all-the-uses-of-an-underscore-in-scala
go에도 비슷한 의미로 사용하려고 한 것 같다. 아직까지는 많이 발견하지 못했지만.. 찾게 되면 계속 작성해야 겠다.
_(underscore)의 사용이 for에도 적용된다.
1) key 를 사용하지 않겠다는 의미가 있다.
package main
import "fmt"
func main() {
var m map[string]int
m = map[string]int{}
m["a"] = 1
m["b"] = 2
sum := 0
for _, value := range m {
sum += value
}
fmt.Println(sum)
}
출력
3
2) 값을 대입받는 의미로도 쓰인다.
ackage main
import "fmt"
func main() {
var m map[string]int
m = map[string]int{}
m["a"] = 1
m["b"] = 2
for i, _ := range m {
fmt.Println(i)
}
}
결과
a
b
여기서는 아래의 코드와 동일한 효과가 있다.
for i := range m {
fmt.Println(i)
}
3) import시 dependency lib는 사용하지 않는 용도로 쓰인다.
To import a package solely for its side-effects (initialization), use the blank identifier as explicit package name:
import _ "lib/math"
참고로 underscore는 값의 개념(value)로 쓸 수 없다.
cannot use _ as value
'go lang' 카테고리의 다른 글
[go lang] 변수나 라이브러리를 사용하지 않는다고 에러 나는 경우 (0) | 2015.03.28 |
---|---|
[go lang] panic: assignment to entry in nil map 해결 하기 (0) | 2015.03.27 |
atom 으로 go run 환경 구성하기 (0) | 2015.03.27 |
[Go Lang] Go 언어 맛보기 - NES ROM 에뮬레이터 (0) | 2015.03.26 |
[Go Lang] Atom 에서 Go Lang 환경 설정하기 (0) | 2015.03.25 |