mastodon.cardina1.red は、数々の独立したMastodonサーバーのうちのひとつです。サーバーに登録してFediverseのコミュニティに加わってみませんか。

サーバーの情報

3
人のアクティブユーザー

builtin package - builtin - Go Packages
pkg.go.dev/builtin#make

make([]int, n) みたいな組み込み関数を知り、キモすぎて泣いてる

pkg.go.devbuiltin package - builtin - Go Packages
らりお・ザ・何らかの🈗然㊌ソムリエ

お前ふつうの関数みたいな顔してるけど型を引数にとってるの何やねん、それとも []int とだけ書くと typeid 的な特殊な型の値になるんか? (と思ってもリファレンス (pkg.go.dev/builtin#Type) ではそんな感じはしないし)

pkg.go.devbuiltin package - builtin - Go Packages

関数呼出と特殊形式 (というのは Lisp での名前だが) の区別がつかないの、だいぶきらい

知らない名前の foobar(hoge, fuga) みたいなのがあったとき、それが予約語や構文レベルでどうにかなっているのか単なるユーザ定義の関数なのか見た目だけでは区別できないの、だいぶ険しくないですか?

いや make([]int, n) について言うなら「関数ではなくコンパイラビルトイン/マクロ/構文です」と言われたら納得していたと思うんだけど (いやそれでもキモいが)、リファレンスに堂々と

func make(t Type, size ...IntegerType) Type

と書いてあるので何じゃこりゃと

それとも Go って昔からユーザがこういう「型そのものを引数にとる (かのような) 関数」を定義できる仕様になってたんですかね……
Go のことは知らんけど、それができるなら最初からジェネリクスはあったということになるし、たぶんそうじゃないよね?