Rust part22

■ このスレッドは過去ログ倉庫に格納されています
1デフォルトの名無しさん
垢版 |
2024/01/20(土) 23:21:40.08ID:wyzQTwgG
公式
https://www.rust-lang.org/
https://blog.rust-lang.org/
https://github.com/rust-lang/rust

公式ドキュメント
https://www.rust-lang.org/learn

Web上の実行環境
https://play.rust-lang.org

※Rustを学びたい人はまず最初に公式のThe Bookを読むこと
https://doc.rust-lang.org/book/

※Rustを学ぶ際に犯しがちな12の過ち
https://dystroy.org/blog/how-not-to-learn-rust

※Rustのasyncについて知りたければ「async-book」は必読
https://rust-lang.github.io/async-book/

※次スレは原則>>980が立てること

前スレ
Rust part21
https://mevius.5ch.net/test/read.cgi/tech/1692105879/

ワッチョイスレ
プログラミング言語 Rust 4【ワッチョイ】
https://mevius.2ch.net/test/read.cgi/tech/1514107621/
2024/02/08(木) 10:24:35.32ID:TVrzLD8V
>>426
直接に通信するあたりは言語を統一しておくと共通のライブラリを使えたりするので便利。
少人数で運用しているシステムだとクライアントとサーバーがある程度に
共通のスキルセットで構築できたほうがいいってこともある。
それがデメリットを上回るほどのメリットかどうかは状況によるけど。
2024/02/08(木) 12:09:04.39ID:ug5u5xxX
gRPCやRESTなら主要言語のほぼ全てで対応されてるんだから別に同じ言語に囚われる必要無いと思うけどなあ
2024/02/08(木) 12:31:37.22ID:LLz4mv+z
シリアライズフォーマットの話とプロトコルの話も区別できないのかぁ
2024/02/08(木) 12:39:36.57ID:+yfo15bd
スキルセットが一番発揮されるのはコード実装前の設計段階だよ
アルゴリズムとデータ構造、各種言語の各種フレームワークの知見を活かして設計してるだろ?
実装段階に入ったらあとは作業
フロント担当サーバー担当それぞれが実装する
フロントとサーバーはお互いに入出力のAPIだけ知ってればいい
言語の書き方そのものに対するスキルセットは納入期間の短縮にでも活かしてくれ
2024/02/08(木) 12:43:32.12ID:ug5u5xxX
>>429
そんなんprotobufかjsonのどっちかだろ
当たり前すぎてデータをどう送受信するかの話をしてたわすまん
2024/02/08(木) 12:47:52.48ID:ug5u5xxX
あっごめんzstdかgzipのどっちでデータ圧縮するかの話もしたほうがいいの?
2024/02/08(木) 12:58:22.52ID:L2e7Z7sZ
それら全て些細な問題でどうでもいい
通信でもファイルでも何でも
APIやフォーマットさえ決められていればよい
どの言語かどのフレームワークやライブラリかなんて一切関係なく自由
2024/02/08(木) 13:08:16.93ID:aB2xl6fL
>>426
一応、lddで確認したけれど、Epicのオンラインライブラリリンクしてたから、>>427 も言うように、クライアント側のゲームエンジンに引っ張られてると思う。
2024/02/08(木) 13:14:50.58ID:ug5u5xxX
自社規格のデータをシリアライズ、デシリアライズするのに自社ライブラリを使うのと、サーバーやフロントをどの言語で実装するかは全くの別問題でしょ
>>414が言ってる、サーバーをC++で実装するだなんて効率の悪いことはするもんじゃない
2024/02/08(木) 13:16:12.56ID:L2e7Z7sZ
もちろんサーバとクライアントで同じ言語を利用すると有利な場合もある
もっと複雑なデータを別な形のデータに変換する同じ動作(コード)がサーバでもクライアントでも求められる場合がそれにそれに相当する
具体例としてはサーバサイドレンダリングをしつつフロントエンドでもシングルページのためレンダリングをする場合
従来はサーバサイドをNode.jsにすることで両側JavaScriptにしてコード共有が行われてきたが両側Rustでの動きもある
2024/02/08(木) 13:27:14.44ID:21XfFHH6
人によっては使用言語を統一したほうが数多なるデメリットを単一のメリットが上回ることもある
このご時世、簡略化されたプログラミング言語で溢れたなかで、単一言語しかできないというのは珍しいとは思うが、誰しもがバイリンガルプログラマというわけではない
2024/02/08(木) 13:39:56.20ID:557abryP
unreal engineってフレームワークでサーバーアプリも作れるけど、自前でAPI組んでサーバーやったほうが圧倒的に軽量なんだよね
439デフォルトの名無しさん
垢版 |
2024/02/08(木) 13:40:27.02ID:wg4U7wDf
バイリンガルでないプログラマ、Javaしか書けなそう
2024/02/08(木) 14:05:04.22ID:u09hDjq1
Java界隈では未だにXMLが現役なのかな
一時期は全てがXMLだったけど最近触れる機会がない
2024/02/08(木) 14:06:53.53ID:0U3NNgcj
jsonの後にxml使うとデータの無駄が気になる
442427
垢版 |
2024/02/08(木) 14:06:56.11ID:TVrzLD8V
>>430
「少人数で」と但し書きを入れたのは一人が色々と担当する状況であるという意味だよ。
2024/02/08(木) 14:22:34.49ID:TVrzLD8V
ウェブまわりはいろんな規格が入れ子状態だから名前空間で分離する仕組みも要るところでは要る。
XML の万能さは他には代えられない便利さはある。
ただ、それが要らないところでは負担がデカいのも本当だし、多くの場合には要らんかったわという気づきがあったんだよ。

XML もスキーマがあれば大幅に情報を短縮できるバイナリXMLの規格も出てるんで、
そういうのを活用すればそれほど過剰に冗長なわけではない。
2024/02/08(木) 14:33:58.18ID:d7zFncjn
>>436
例えがフロントエンドって急にレベル下がってワロタ
2024/02/08(木) 14:44:36.25ID:K+TPHqwf
>>431
ゲームサーバーでも性能を極限まで高めることが要求されるような場合はprotobufやJSONはあまり使われない
↓ここでいうRaw Struct的なものが今でも使われてる
https://flatbuffers.dev/md__benchmarks.html

言語ニュートラルじゃないしサーバーとクライアントと同時アップデートしないといけないとかいろいろ制約あるけど性能が必要ならそれらの手間を惜しまない
2024/02/08(木) 14:50:39.80ID:L2e7Z7sZ
>>444
ならばプロコトル以外で
サーバとクライアントで同じコードを実行するために同じ言語であることが求められる例を挙げろよ
447デフォルトの名無しさん
垢版 |
2024/02/08(木) 14:52:06.22ID:ZTHDKZhp
>>440
早くxmlは滅んで欲しい。
2024/02/08(木) 14:52:54.34ID:TVrzLD8V
シリアライズやパースのコストは小さくはないけど、
メモリコピーのコストが多くを占めているという発見から
なるべくコピーを減らしたシリアライズの規格として message pack が
実行性能と可搬性を (ある程度に) 両立したものとして人気がある。

まあ要するにそれぞれに利点があるんでこれが決定版とはなかなか言えないんだよな。
ある程度の収斂はしたにしても両立不可能なトレードオフってものはある。
2024/02/08(木) 14:58:14.76ID:ug5u5xxX
>>445
まあゲームだとデータの規格のバージョン互換性を考えなくていいし独自規格で暗号化も兼ねたシリアライズをしたほうが悪意あるデータの改ざん防止のための対策にもなりそう

てかデータ記述言語の話なんざクソほどどうでもいいんだが
2024/02/08(木) 15:04:17.46ID:2EtcR70r
xmlだろうがjsonだろうがrest通すときはgzipするからどっちでもいいわ
2024/02/08(木) 15:04:23.12ID:d7zFncjn
>>446
一昔前の分散オブジェクトシステムは大抵それだぞ
COBRAとか
そういう設計古くさいから基本的にやらない
2024/02/08(木) 15:14:54.75ID:ug5u5xxX
>>438
ああ、なるほど、UEはゲームレンダリングエンジンとしてではなくそれ単体でサーバーサイドもできるってことね知らんかった
小規模サーバー用途ならそれで十分そう
453デフォルトの名無しさん
垢版 |
2024/02/08(木) 15:16:59.91ID:ZTHDKZhp
クライアントとサーバーで同じ "プログラミング言語" 使うことの話が、いつのにかプロトコルとデータシリアライズの話にすり変わってるし。
発端は >>426 あたりかな。
2024/02/08(木) 15:26:56.26ID:L2e7Z7sZ
>>451
分散オブジェクトの話とは状況が全く異なる
ウェブのサーバーサイドとクライアントサイドでのコード共通化は現在使われている最新技術
これを片側でしか行なわないと速度面すなわちブラウザを使う人間の体感面で不利となってしまう
両側ともにJavaScriptにするのが主流だがサーバーリソースコスト面で不利なため両側Rust化
2024/02/08(木) 15:32:31.05ID:d7zFncjn
>>454
別にお前のお気持ちは聞いてないよ
2024/02/08(木) 15:34:25.91ID:L2e7Z7sZ
>>455
気持ち?
理解していないようなので現在のウェブ界での動向を伝えただけだが
2024/02/08(木) 15:39:43.48ID:lShPsUxC
>>454
それwasmってやつ?ファイルサイズがjavascriptより大きくならない?
2024/02/08(木) 15:46:12.86ID:rcfTmCHH
フロントエンドってAPI受け取ってReactで画面描いてAPI送りつけるだけじゃん、これのどこがサーバーサイドとコード共通にすなるん??
2024/02/08(木) 15:52:25.19ID:VkQAw5RB
javascriptでサーバーサイドって言ってる時点で頭がおかしいからスルーでおけ
2024/02/08(木) 15:57:01.04ID:z3sGsuBj
nodejsで済むサーバーって自宅サーバーか何かか?
2024/02/08(木) 16:06:02.61ID:34mhb8ps
>>457
一般的には何をするかに拠る
レンダリングコード共通化の話ならばその部分については誤差範囲

>>458
あまりにも基礎知識が無さすぎるようなので
SSRとCSRの違いと両者のメリットとデメリット及びコード共通化によるメリットを勉強しなさい
2024/02/08(木) 16:07:53.03ID:d7zFncjn
>>456
いやそれが余計なんだって
next.js app router+rust使ってる俺に対してする説明ではない
2024/02/08(木) 16:08:25.23ID:34mhb8ps
>>459
>>460
そこはPHPでもRubyでもPythonでもJavaScriptでも変わらない
しかしそれらは遅いからサーバーサイドはRust化すべきだろう
つまりレンダリング共通コードもRustで統一すべき
2024/02/08(木) 16:43:53.73ID:ug5u5xxX
WASMはあまりにアセンブリ言語すぎる
watで直接WASMを書いてコンパイルするのが一番バイナリのファイルサイズを抑えられるけど大変
watじゃなくて他の言語で書くにしてもstd使うとファイルサイズが爆増する
既存のライブラリをWASM化するならともかく、既存のJavaScriptコードをstd有りで書き直すのは、ファイルサイズがJavaScriptのときと比較して増えて本末転倒だからJavaScriptのままでいい
watやRust with no-stdでWASMを頑張る人は頑張って
2024/02/08(木) 16:54:49.99ID:GUaqsUfs
>>459 >>460
今は企業サイトでもサーバーサイドでJavaScriptが動く時代よ
Next.jsやNuxt.jsなどの名前を聞いたことないですか?
2024/02/08(木) 17:10:13.67ID:ug5u5xxX
だめだ、WASM specを見直してるけど相変わらず何書いてあるのかわからん
2024/02/08(木) 17:15:11.69ID:TVrzLD8V
>>464
規模がデカいアプリケーションは std の大きさなんてどうでもよくなるくらいにデカい。
大規模化するウェブアプリケーションが想定されているから
JavaScript のほうが軽量であるときは JavaScript を使えばいいよ。
そうじゃないときがあるって話なんだよ。
2024/02/08(木) 17:20:27.37ID:K+TPHqwf
1コアで毎秒数万リクエスト処理するようなゲームサーバー的なものの話をしてると思ってたらSSRとかReactとか全く違うユースケースの話をしてる人達がいたのか
そりゃ話が噛み合わないわなぁ
469デフォルトの名無しさん
垢版 |
2024/02/08(木) 17:26:24.69ID:Z/Y0D/hR
話を合わせようとしたら負け
駄文乱文を量産し続けて最後まで圧倒したやつの勝ち
470デフォルトの名無しさん
垢版 |
2024/02/08(木) 17:26:27.02ID:Z/Y0D/hR
話を合わせようとしたら負け
駄文乱文を量産し続けて最後まで圧倒したやつの勝ち
2024/02/08(木) 17:33:18.45ID:wPAPAJoC
>>467
その規模のデカいアプリケーションとやらがffmpegとかゲームとかをやるwasmならファイルサイズが大きくなる以上のメリットがあるからいいが、きれいなUIを表現するためにjavascriptよりファイルサイズの大きくなったwasmを使うのはアホとだけ言っておくわ
2024/02/08(木) 17:42:32.82ID:EBOg13nx
>>464
Wasmではfsなど必要ないのだから
no_stdで全く問題なくプログラミングできます
Rustの基本はほとんどcoreに入っています
allocを使えばVecやStringも使えます
あと欲しくなるのはHashMapあたりでしょうがこれもhashbrownで使えます
一度no_stdでプログラミングしてみることをオススメします
2024/02/08(木) 17:44:09.24ID:EBOg13nx
>>471
いえいえ
Wasmのファイルサイズはそんな巨大になりません
2024/02/08(木) 17:55:44.80ID:TVrzLD8V
Rust で簡易アセンブラっぽいものを作ったことがあった (特に std を避けるとかしてない) ので
wasm で出力してみたけどだいたい 140kb くらいな感じ。
たぶん JavaScript で書いて最適化もすればもっと小さくは出来そうな感触はあるが
だからといって Rust でやって深刻に巨大すぎるということはない。
小さいプログラムのときでも Wasm は使い物になる。

いや、もちろん比較したら JavaScript で書いたほうがよいことも多いのだろうけど、
全くのアンチパターンってことはない。
2024/02/08(木) 17:56:24.51ID:ug5u5xxX
>>472
いやー、watでいいかな
2024/02/08(木) 18:26:36.73ID:d7zFncjn
Figmaはecmascripten使ってるそうだよ
C++で書いてWebGL用にコンパイル
おそらく世界最大のwasmコードだろう

https://www.figma.com/ja/blog/webassembly-cut-figmas-load-time-by-3x/
2024/02/08(木) 18:29:10.38ID:d7zFncjn
今のところrustよりはecmascriptenの方が既存コードを活かせる
2024/02/08(木) 18:37:22.37ID://05Mhwl
>>462
Next.js使ってるならサーバーサイドでSSGやSSRのためにJavaScriptを動かしてるってことだね
そこをRust化したいと思わないの?
2024/02/08(木) 18:41:39.17ID:d7zFncjn
>>478
next.jsはUI部分だけでバックエンドはRustだから特に必要性は感じないね
2024/02/08(木) 18:54:05.90ID://05Mhwl
>>479
Next.jsでSSRなら毎回JavaScriptのコードが動くわけだけど
「バックエンドはRustだから」って?
外から受ける部分のサーバはRustでもそこからNext.jsを動かすためのNode.jsなどを呼び出すことになるよね
2024/02/08(木) 19:25:31.03ID:QINBs586
単にNext.jsがデータをフェッチする先のAPIエンドポイントがRust製ってだけだろ。
LBやらWebサーバーのような低レイヤがRust製かどうかみたいなのはそんなにユーザーに近いWeb屋が気にかけて手をいれる場所でもない。
2024/02/08(木) 19:29:46.46ID:0U3NNgcj
途中にビルド嚙ませれば同じにできるけど一般的にはCommonJSとECMAScriptで違う方言のJSでやり取りする事になるけどね
TypeScriptは使ってないから知らん
2024/02/08(木) 19:34:55.22ID:XA34Vq7w
>>480
Next.jsがまるで悪かのように言ってるけど、そんな遅いと思わんな
自分が求めてるレベルが低いだけなのかな
2024/02/08(木) 19:38:03.57ID:XODN4PGj
next.jsは普通に速いよ
ビルドがクソ遅いだけで
他のエコシステムはもっと高速なんだけどねえ
2024/02/08(木) 19:54:29.48ID:vWC2S6ww
サーバーサイドは可能な限りリソースコスト(クラウド代/ハード代電気代)を下げたい
Next.jsに限らずJavaScriptを含めた遅い言語の実行は避けたい
すべてをRust化するのが最善案
2024/02/08(木) 20:01:51.28ID:ZqeEswjg
Next.js(Nuxt.js)はどんなにクソだとしても使わざるをえないものなんだよね
Next.js以上のものはもはや作れんよ
2024/02/08(木) 20:03:16.79ID:XODN4PGj
それな
App Routerが神過ぎるんよ
これのおかげでサーバーサイドエンジニアが全てコントロールできるようになった
488デフォルトの名無しさん
垢版 |
2024/02/08(木) 20:29:26.04ID:ZTHDKZhp
>>464
forthみたいで面白くない?
2024/02/08(木) 21:09:57.90ID:iGefvq8R
Next.jsがRailsの息の根を止めたわけだが、
React+Next.js+〇〇
このバックエンド部分の〇〇がRustが活かせるところ
2024/02/08(木) 21:15:13.68ID:fAoXwANU
>>486
>>487
ReactとNextの大改革されてきた歴史を知っていれば
数年後にはまた改善されて新たな導入が必ずある
2024/02/08(木) 22:03:30.31ID:z3hLjd3o
もう大きくは変わらないんじゃないか?
正直俺はPages Routerまでのnext.jsはゴミだと思ってたから使ってなかった
しかしApp Routerを見たときまさに俺の求めているものだと感じた
多分これが最高地点だよ
2024/02/09(金) 00:17:38.71ID:tjbjc/kZ
今はRuby on Rails でも、React/Next.js, TypeScript が転職で必須。
少し前は、Vue.js だったけど、Vue 3 は流行らなかった

Rails 7 からは、Hotwire に変わった。
HotwireはHTML Over The Wireの略で、
SPAの開発において、JavaScriptのコーディングを極力必要としない。
脱node.js, webpack

JSONではなく、HTMLベース。
サーバーサイドでHTMLを生成し、WebSocketでWebブラウザへ送信する

これで、Reactに取られたシェアを回復する
2024/02/09(金) 06:07:49.74ID:79P7yOqB
>>492
javascript使ったほうがラクなのになんでわざわざhtml縛りするの?
2024/02/09(金) 07:43:30.04ID:uUxbU3bY
Ruby信者はズレてるから仕方ない
2024/02/09(金) 07:53:26.10ID:cmMrL7Ws
SSRのsvelteはWebオーサリングツールから実画面に持っていきやすい
WebページのスクリプトにRust使えるブラウザとRust実装のsvelteを作ってもらいたい
2024/02/09(金) 08:55:44.38ID:so08h4Qi
SvelteもNext.jsもサーバーサイドでJavaScriptを動かすためエコじゃないのでいずれ新たなものに置き換えられるでしょう
2024/02/09(金) 09:34:26.12ID:Kdv0HxUE
std::any::type_name_of_val()は学習時にも良さそ
2024/02/09(金) 09:59:55.75ID:so08h4Qi
昔から使えるよ
fn type_name_of_val<T: ?Sized>(_val: &T) -> &'static str {
 std::any::type_name::<T>()
}
499デフォルトの名無しさん
垢版 |
2024/02/09(金) 10:27:55.96ID:C39eXNkM
>>493
JS使った方が楽という感覚は理解できんわ
2024/02/09(金) 13:19:22.70ID:YdTAf9YB
>>496
next.jsのapp routerがサーバーサイドフレームワークになったの知らないの?
2024/02/09(金) 13:59:04.29ID:wfDAL7tm
リソースコストがかかるスクリプト言語をサーバーサイドで動かしてる連中はいずれ消えるさ
2024/02/09(金) 14:16:42.17ID:YdTAf9YB
>>495
app routerの登場によりSSRだとかCSRとかややこしい概念は必要ない
あるのサーバーコンポーネントとクライアントコンポーネントとサーバーアクションのみ
極めてシンプルになった
503デフォルトの名無しさん
垢版 |
2024/02/09(金) 15:05:02.67ID:7wM1u29W
どんどんrustの話から離れていってんな
504デフォルトの名無しさん
垢版 |
2024/02/09(金) 15:19:56.77ID:d4LbU2O8
SSRやCSRがややこしいと感じる意味がわからん
Next.jsのPage Router時代の区別がややこしかったと感じてるだけとちゃう?
特定の実装とは関係のない概念としてのSSRやCSRは別にややこしくも何ともないでしょ

ReactのサーバーコンポーネントはNext..jsではサーバーサイドでレンダリング(HTML生成される)、つまりSSR
クライアントコンポーネントはクライアントサイドでレンダリングされる、つまりCSR

ついでに言うとHotwireみたいなのも仕組みとしての基本的な考え方は同じ
505デフォルトの名無しさん
垢版 |
2024/02/09(金) 15:26:09.73ID:wyTCEkUp
Rustで引数の数を可変にしたいと思っただけでマクロが必要になるの、どういう思想なんだ
2024/02/09(金) 15:36:06.60ID:gZOHhCrR
>>505
型システムとの兼ね合い。
507デフォルトの名無しさん
垢版 |
2024/02/09(金) 15:38:36.69ID:ixshWTAh
>>505
オプショナル引数 → 数が少ないならOption多いならbuilder
可変長の引数 → スライス

マクロを使うのは個々の引数の扱いがそれぞれ異なりそれぞれをコンパイル時に型をチェックしたい場合などに使う
2024/02/09(金) 15:52:26.69ID:IKpgt5UR
next.jsはRustフレンドリーなフレームワークだから実質Rustなんだよね
2024/02/09(金) 16:25:40.87ID:YdTAf9YB
>>504
その発想だとサーバーアクションは説明できないよ
2024/02/09(金) 16:28:31.07ID:YdTAf9YB
>>508
俺は将来的にnext.jsは全部rustで書きなおされると思ってる
2024/02/09(金) 16:37:49.82ID:DOCRBofH
>>504
概念自体はそっかという感じだけどそれを実装する方法があまりにもいけてなさすぎたんでしょ
App Routerはどこで実行されるか?だけを意識すればよろしい
2024/02/09(金) 17:13:49.98ID:wfDAL7tm
>>510
同感
513デフォルトの名無しさん
垢版 |
2024/02/09(金) 18:59:39.30ID:wyTCEkUp
C++であれば関数のオーバーロードで実現していたようなことをRustでは全部封じてしまった結果、ライブラリは至る所マクロだらけ
これはRustの目指したいところなのか?
2024/02/09(金) 19:22:48.34ID:6IeD8Xf6
実行時の分岐ではなくコンパイル時のコード生成に置き換わるんだから
ゼロコスト抽象化という観点ではC++のほうがそちらを目指さなければいけなかったんじゃないでしょうか。
2024/02/09(金) 19:24:12.28ID:6IeD8Xf6
あ、可変長引数の話とオーバーロードの話を混同してしまっていた。
516デフォルトの名無しさん
垢版 |
2024/02/09(金) 19:32:53.51ID:RpHX5dqz
https://qiita.com/buntafujikawa/items/1bd808f5f55eb63df7c4
こういうの知ってたら
オーバーロードもデフォルト引数もいらね〜
どうしてもほしけりゃ別名の関数作るわ
ってならん?
517デフォルトの名無しさん
垢版 |
2024/02/09(金) 19:45:04.86ID:qkcXaSLH
別名の関数を作りたくなるのはわからんでもないけど、実際crates.ioはそうならずにマクロだらけなので
2024/02/09(金) 20:35:29.36ID:gZOHhCrR
田舎者は十年間使わない道具でも納屋にしまいっぱなしってことがまあまああるけど都会だとどんどん捨てるじゃん。
都会では物より空間のほうが高くつくから。
何が大事か、何を大事ということにするかで判断が変わる。
名前を考えるってのは人にとって思ったより負荷が高いということに対する解がオーバーロードなんだよ。
でもまあオーバーロードにもデメリットは当然ながらあるので結局は何を重視するかの問題。
519デフォルトの名無しさん
垢版 |
2024/02/09(金) 23:53:50.41ID:qm1w3dJY
オーバーロードは無くてもいいけどキーワード引数は欲しいかな
2024/02/09(金) 23:59:48.02ID:D/1cks9J
>>519
あるよ
X { name: "foo", num: 123, ... }
521デフォルトの名無しさん
垢版 |
2024/02/10(土) 02:54:22.21ID:rfU+NtYa
>>520
いちいちstructを定義しなくてもいいようにするためにキーワード引数って存在してるんだよ
2024/02/10(土) 09:13:20.91ID:KcmgHb9l
>>521
同じことだろ
関数の引数で列挙するか構造体で列挙するかで差はない
構造体で列挙しておけば関数の引数はその構造体名だけ出せばよい
他の関数でも使い回せるメリットもある
2024/02/10(土) 09:40:29.45ID:d2BF2Jtb
Rustでなぜデフォルト引数がサポートされてないのかはここでよろしく
https://www.reddit.com/r/rust/comments/fi6nov/why_does_rust_not_support_default_arguments/
2024/02/10(土) 09:50:58.48ID:lXB6J68A
構造体を使うかビルダーパターンで困ることはないからね
もし技術的に矛盾のない他の良い方法があれば提案してみるべきだけど既出だと思うよ
2024/02/10(土) 09:54:14.05ID:Lf9bQLCg
ビルダーパターンは自分で書くならめんどい
2024/02/10(土) 10:07:03.72ID:iJNhxzEm
>>525
でも可視性があがるよ、あと保守が楽ちん
メリットいっぱいなんだよ✌
■ このスレッドは過去ログ倉庫に格納されています
5ちゃんねるの広告が気に入らない場合は、こちらをクリックしてください。

ニューススポーツなんでも実況