Rust part28at TECH
Rust part28 - 暇つぶし2ch986:デフォルトの名無しさん
25/05/02 21:09:43.98 z720W3rP.net
>>980
忘れる?
キーワード指定オプション引数を付け忘れる
それに対応するメソッドを付け忘れる
どちらも同じことだ
ビルダー方式で欠点は何も存在しない

987:デフォルトの名無しさん
25/05/02 21:13:02.11 5gJO9Aey.net
スクリプト言語じゃないとキーワード引数実装無理じゃね

988:デフォルトの名無しさん
25/05/02 21:13:29.15 z720W3rP.net
>>981
derive_builderを使ったことがなく文句を言ってるのかね
この方式のほうが簡潔で冗長がなくなる
オプションキーワード引数方式だと自分でそのシグネチャを書かなければならなく冗長になる
ビルダー方式は冗長がなく有利

989:デフォルトの名無しさん
25/05/02 21:14:00.07 bGn62aq8.net
アニメーションの毎フレーム毎に呼び出すような、パフォーマンスが大事な関数でもbuilderパターン使えるの?

990:デフォルトの名無しさん
25/05/02 21:15:34.05 i8P7c2SF.net
キーワード引数なら完全にゼロコストにできる
ビルダーだと、余計な初期化用の構造体が必要だし、値を指定しているパラメータについても最初にデフォルト値のコピーが走っちゃうからゼロコストにならない

991:デフォルトの名無しさん
25/05/02 21:16:03.15 n0wyIh3y.net
他に膨大な議論をしてるのにキーワード引数なんてたいして重要てはない割に面倒なものは後回しだろ。
(一応は名前つき引数の提案は何年も前に出てはいる。)

992:デフォルトの名無しさん
25/05/02 21:18:16.83 5gJO9Aey.net
マクロを使えばなんとか

993:デフォルトの名無しさん
25/05/02 21:22:00.73 q0/bxH7J.net
>>986
Rustでビルダー方式でも最適化されてゼロコストになっている
生成コードで確認した

994:デフォルトの名無しさん
25/05/02 21:24:13.63 06aFKDyR.net
>>983
コンパイルされる言語でも使うよ (C#やKotlin)

995:デフォルトの名無しさん
25/05/02 21:24:49.07 BP5o1HEV.net
>>989
何と比較してゼロコストだと言ってる?

996:デフォルトの名無しさん
25/05/02 21:25:45.04 bGn62aq8.net
昔々、X ToolkitはCでキーワード引数を実現するために
配列を使ってなかったっけ?
末尾に終端マーカーを置き忘れると落ちる

997:デフォルトの名無しさん
25/05/02 21:29:20.61 tUdMCpmj.net
>>982
>>982
人間は容易に忘れるし順番ですら間違える
通常のエディタの支援が受けられる関数にした方が良い

.G(p[0]).R(p[1]).B(p[2]).build()
のところを容易に
.R(p[0]).G(p[1]).B(p[2]).build()と間違えて
さらに
.R(p[0]).R(p[1]).B(p[2]).build()と間違える

998:デフォルトの名無しさん
25/05/02 21:30:23.29 5gJO9Aey.net
>>990
おお、コンパイラ賢い

999:デフォルトの名無しさん
25/05/02 21:31:43.23 q0/bxH7J.net
>>991
構造体のフィールドに値を入れていって構造体を作成しても
derive_builderを使いメソッドで値を入れていっても同じになった
メソッド呼び出しが消えた
ゼロコスト

1000:デフォルトの名無しさん
25/05/02 21:34:42.77 z720W3rP.net
構造体の初期化のために
キーワード付オプション引数の関数のシグネチャを記述するのは冗長でバカげている
Rustのderive_builder利用のビルダー方式が最も簡潔でベスト

1001:デフォルトの名無しさん
25/05/02 21:38:09.58 06aFKDyR.net
SerdeやPythonのnumpy並みに「その言語の利用者ならみんな知ってる」ライブラリならともかく、ユーティリティ程度のものでも特定のライブラリにロックインするのがベストなもんかね

1002:デフォルトの名無しさん
25/05/02 21:38:30.32 n0wyIh3y.net
>>993
キーワード引数なら間違えないのか?

1003:デフォルトの名無しさん
25/05/02 21:39:36.25 n0wyIh3y.net
>>997
マクロってそういうもんだよ。

1004:デフォルトの名無しさん
25/05/02 21:40:47.47 tUdMCpmj.net
Rustおじさん論破した

1005:1001
Over 1000 Thread.net
このスレッドは1000を超えました。
新しいスレッドを立ててください。
life time: 39日 4時間 3分 48秒

1006:過去ログ ★
[過去ログ]
■ このスレッドは過去ログ倉庫に格納されています


最新レス表示
レスジャンプ
類似スレ一覧
スレッドの検索
話題のニュース
おまかせリスト
オプション
しおりを挟む
スレッドに書込
スレッドの一覧
暇つぶし2ch