Encraft #10 Go1.22+ Enablement Lesson
#encraft twitter.com/candy__dev/sta…
2024-01-30 19:47:02for i := 0; i < 10; i++ {}のハックとして、for i := range make([]struct{}, 10) {}ってやってたけど、for i := range 10 {} になるのは嬉しい
2024-01-30 18:12:18for i := range nでpythonの for i in range(n) みたいなことができるようになったと #encraft
2024-01-30 19:47:16これが for i := 0; i < 3; i++ こう書けるようになる for i := range 3 #encraft
2024-01-30 19:48:44range over funcでmaps.Key関数と同等のことができるようになるからリリースが見送られたと🤔 #encraft
2024-01-30 19:50:19個人的にはrange over funcは常人には難しすぎるし素直にmaps.Keyの方が良かったのではと思うんすよね……(小声) #encraft
2024-01-30 19:52:05type Seq[V any] func(yield func(V) bool) type Seq2[K, V any] func(yield func(K, V) bool) #encraft
2024-01-30 19:55:01Go 1.22からソートのソート関数のようにrangeにrange関数が使えるようになるのね。出力順とか内容を事前に制御できるようになる訳ですなq@w@p #encraft
2024-01-30 19:56:58#encraft 個人的にGoのDBライブラリってスライスで値返すものが多い気がしててrange over func登場でそこが変わるかどうか気になる なんか他言語だとページング勝手にやってくれるやつとかあるらしいのでそういうの隠蔽したAPIができそうなイメージ(?)
2024-01-30 19:58:03range over funcがfunc over interfaceにならなかったのは、後方互換性を保つために今までrangeに置けなかった型であるべき、と #encraft
2024-01-30 19:58:04range over function なぜover interfaceじゃなくてover functionなのか? →後方互換性を保つため インターフェイスにしてしまうと、既存のrangeが回せる型(chanなど)の挙動を破壊してしまう #encraft
2024-01-30 20:00:43x/exp/xiter package のproposal おそらくgo1.24以降リリースとのこと github.com/golang/go/issu… #encraft
2024-01-30 20:07:13Pythonでもイテレーターでyieldという単語使いますね。ってことでPythonと同じ感じやろと思って読んたけどぱっと見わからない。慣れが必要だ。 #encraft
2024-01-30 20:16:56ただ後方互換性を保つために引数増やせなくて、苦し紛れなI/Fになってるのには苦笑いをするしかない #encraft
2024-01-30 20:17:40ルーティング機能が入ってワイルドカードや{ID}やHTTPメソッドが指定できるらしいが、昔一瞬Ruby on RailsのチュートリアルをGoで実装した時の苦労が色々解消されそうだ #encraft
2024-01-30 20:22:06