次世代言語27 Nim Zig Pony Carbon Gleam (308レス)
次世代言語27 Nim Zig Pony Carbon Gleam http://mevius.5ch.net/test/read.cgi/tech/1659660050/
上
下
前次
1-
新
通常表示
512バイト分割
レス栞
抽出解除
レス栞
リロード規制
です。10分ほどで解除するので、
他のブラウザ
へ避難してください。
192: デフォルトの名無しさん (ワッチョイ 22f1-rrr/) [] 2023/11/21(火) 05:27:43.98 ID:60zWiP9n0 zigのジェネリック、やりたいことは分かるんだけど構文がよく分からん https://ziglang.org/documentation/master/#Generic-Data-Structures fn List(comptime T: type) type { return struct { items: []T, len: usize, }; } // The generic List data structure can be instantiated by passing in a type: var buffer: [10]i32 = undefined; var list = List(i32){ .items = &buffer, .len = 0, }; List()の返値はList型じゃなくてi32型なの? でもi32の変数があったときにいつもその構造体への初期化処理みたいなのかけるわけじゃないでしょ。 でもfn Listの宣言によれば返値の型はtype=i32なんでしょ?謎すぎ http://mevius.5ch.net/test/read.cgi/tech/1659660050/192
194: デフォルトの名無しさん (ワッチョイ cd26-1See) [sage] 2023/11/21(火) 10:29:25.70 ID:Z3uiTyFT0 >>193 >>192の例で説明すると、引数として渡されたtypeはitemsフィールドの要素の型。 戻り値のtypeは匿名structの型。 引数の方のtypeは、匿名struct内の関数の引数や戻り値、その関数の戻り値を組み立てるための型引数などにも使える(文字で書くとややこしい)。 戻り値の方のtypeは、builtin.Typeでサポートされてるものが返せる。 あと引数に渡されるtypeは、戻り値を組み立てる型の中で、例えば「T.foo()」と書くことでT型はfoo関数の存在を制約として与えることもできる(foo関数を持たない型が渡されたらコンパイルエラー)。 http://mevius.5ch.net/test/read.cgi/tech/1659660050/194
メモ帳
(0/65535文字)
上
下
前次
1-
新
書
関
写
板
覧
索
設
栞
歴
スレ情報
赤レス抽出
画像レス抽出
歴の未読スレ
AAサムネイル
Google検索
Wikipedia
ぬこの手
ぬこTOP
0.023s