Zigで可変個引数??
こんばんは、めのんです!
Cの可変個引数マクロについて、全4回にわたって書いてきました。 それに引っ掛けて、最近私が勉強しているZigについても書いておきたいと思います。
Zigについては本当に最近始めたばかりですので、間違っている可能性は大いにあります。 いや、たぶんどこか間違っていると思います。 それでも、こうやって自分が学んだことを発信して恥をかくことで、一歩でも二歩でも前進できればいいなと考えています。
ZigのHello WorldはOutStream.printを使って説明されています。 https://ziglang.org/documentation/master/#Hello-World
このメソッドは、Cのprintf系関数と同じように、書式化文字列と書式化される値の並びになっています。 どう表現すればいいのかわからなかったので「書式化される値」と書きましたが、正確には無名構造体のようです。
無名構造体には無名フィールドを0個以上含めることができますので、これが実質的な可変個引数になっているのだと私は理解しています。
可変個引数がひとつもいらない場合でも無名構造体自体は渡さないといけません。 だから、
.{}
というパッと見では何かわからない記号が登場するのでしょうね。
でも、少なくともZigというプログラミング言語の仕様を理解している方が見れば、何がどうなっているのかわかりやすいのだと思います。
なんか、あまりうまく説明できませんでしたが、これからもZigの話題は取り上げていきたいと思います。
それでは!!!