[過去ログ] Rust part24 (1002レス)
前次1-
抽出解除 レス栞

このスレッドは過去ログ倉庫に格納されています。
次スレ検索 歴削→次スレ 栞削→次スレ 過去ログメニュー
28: デフォルトの名無しさん [sage] 2024/06/01(土) 22:15:15.67 ID:hl1xX5EU(1) AAS
>>27
27(1): デフォルトの名無しさん [sage] 2024/06/01(土) 10:39:11.44 ID:8vnvDrFp(1) AAS
へー、便利そう。
だけどこういう仕組みってカラム追加時のDBのマイグレーション辺りが入ってくるととたんに難しくなるんだよなぁ。
そういうDBテーブル構成変更するとどんなプログラミング言語でも何らかの対応が必要となるよ
Rustでsqlx利用ならばDB構成変更した時にcargo sqlx prepareで型をDBから入手し直せばコンパイル時に静的に型チェックされるから楽で安全だね
78: デフォルトの名無しさん [sage] 2024/06/08(土) 14:06:17.67 ID:dp0B2cJQ(2/2) AAS
ロジック的に None でありえないことをコンパイラが見抜ける状況でなら最適化で余計なチェックが消えることもあるし、分岐予測で速度的ペナルティはどうでもよくなることもある。
チェックするにしたって単発ではナノ秒単位の処理なので速度的に足を引っ張ることはまずない。
動画処理とか機械学習とかいった計算量が大きいものならチューニングが必要になることはあるかもね。
117
(2): デフォルトの名無しさん [sage] 2024/06/14(金) 08:28:16.67 ID:Rk5MFfRB(1/2) AAS
>>115
115(2): デフォルトの名無しさん [sage] 2024/06/14(金) 08:05:53.63 ID:5fkgUscQ(1/2) AAS
>>109
その前にSafe Rust相当のsafe c++とか出るんじゃない?
標準化できるかわからんが。
C++をいくら強化してもそれは不可能だと皆がわかった
既存C++資産メンテ用限定としてはCarbonがある
それ以外は全てがRustへの移行に向かっている
152: デフォルトの名無しさん [sage] 2024/06/15(土) 13:33:19.67 ID:mfm3bm5o(2/4) AAS
完全に純粋に一人で打席に立つことは
そいつの年収やそのカネの所有権を定義するのに必要みたいな感じでしょ
228
(1): デフォルトの名無しさん [sage] 2024/06/16(日) 22:06:19.67 ID:DhqUa2Zy(3/3) AAS
ゴールポストを固定することが正しいという考えが衰退したんだよな
正しさを疑うことが常識になったから
410: デフォルトの名無しさん [] 2024/06/27(木) 17:46:10.67 ID:6+Lg0PcZ(1) AAS
>>407
407(1): デフォルトの名無しさん [sage] 2024/06/27(木) 13:49:01.55 ID:AKJ8/1zo(3/8) AAS
低レイヤで起こってることは C と変わらん。
寿命の矛盾がないか静的な検査がクソ強いってだけだ。
ですな
470
(1): デフォルトの名無しさん [sage] 2024/06/29(土) 15:52:41.67 ID:jlQztVvs(1) AAS
ライフタイム関連に限らずRustのリファクタリングは
他言語に比べて波及する範囲が大きくなりやすいんだよね
それで作業量が多いからしんどい

しんどさと難しさは必ずしもイコールではないんだけど
サクサク変更できる言語を経験してると
Rustのリファクタリング時には精神的なエネルギーが相当必要
963: デフォルトの名無しさん [sage] 2024/07/24(水) 12:36:33.67 ID:qFVR7Ywl(2/3) AAS
あとはタプルに登場する型を列挙して
例えばこんなコードを機械的に自動生成させてしまえばいいね

type T1 = &'static str;
type T2 = i64;
type T3 = f64;

enum Tx { T1(T1), T2(T2), T3(T3), }

impl From<T1> for Tx { fn from(x: T1) -> Self { Self::T1(x) } }
impl From<T2> for Tx { fn from(x: T2) -> Self { Self::T2(x) } }
impl From<T3> for Tx { fn from(x: T3) -> Self { Self::T3(x) } }

impl std::fmt::Display for Tx {
 fn fmt(&self, f: &mut std::fmt::Formatter) -> std::fmt::Result {
  match self {
   Self::T1(x) => write!(f, "{x}"),
   Self::T2(x) => write!(f, "{x}"),
   Self::T3(x) => write!(f, "{x}"),
  }
 }
}
前次1-
スレ情報 赤レス抽出 画像レス抽出 歴の未読スレ AAサムネイル

ぬこの手 ぬこTOP 0.034s