Go version이 1.22가
2024.02.06
에 배포되었다
엄청 큰 변화는 없고 툴체인과 몇가지 추가된 기능들이 있는데.
func main() {
done := make(chan bool)
values := []string{"a", "b", "c"}
for _, v := range values {
go func() {
fmt.Println(v)
done <- true
}()
}
// wait for all goroutines to complete before exiting
for _ = range values {
<-done
}
}
기존에 위와 같은 코드를 수행하면 우리의 생각은 'a', 'b', 'c' 가 어떤 순서에 의해 출력되길 바라면서 작성을 했지만,
v
변수가 순회하면서 변하면서 'c', 'c', 'c' 와 같이 찍히는 경우를 겪었을 것이다.
1.22에서는 해당 부분이 수정되어서 'a', 'b', 'c' 가 찍힐 수 있게 되었다.
package main
import "fmt"
func main() {
for i := range 10 {
fmt.Println(10 - i)
}
fmt.Println("go1.22 has lift-off!")
}
integer로 range for loop을 생성할 수 있게 되었다. 간결한 반복문이 가능해졌다.
standard library에 처음으로 v2가 생겼다.
당장에 math/rand 를 없애는건 아니니까 차차 도입하면 될 것 같다.