質問です
デフォルト値を与えるトレイトDefaultについて例えば
#[derive(Default)]
struct S { a: i32, b: i32, c: i32 } の時に
let s = S::default(); と書いても同じ結果で短いのに
let s: S = Default::default(); と書くのはDefaultトレイトのdefault()だと明示するためでしょうか?
結局deriveすると
impl Default for S {
fn default() -> Self {
S { a: 0, b: 0, c: 0 }
}
} を自動的に定義してくれるという理解であっていますか?
驚いたのは
let s = S { b: 123, ..Default:default() };
とすると残りフィールドをデフォルト値展開してくれて S { a: 0, b: 123, c: 0 } が得られることでした
そこでderiveを使わずに自分で
impl Default for S {
fn default() -> Self {
S { ..Default::default() }
}
}
と手動かつ内部をDefault::default()に任せてみたところ
再帰しているとコンパイルで警告が出て実行するとコアダンプでしたw
なぜ?
探検
Rust part12
■ このスレッドは過去ログ倉庫に格納されています
517デフォルトの名無しさん
2021/09/23(木) 01:13:45.47ID:X5xfUo6W■ このスレッドは過去ログ倉庫に格納されています
ニュース
- なぜリベラルは人気がないのか 斎藤幸平さんが指し示す未来への道筋:朝日新聞 [少考さん★]
- “ひとり焼肉”でおなじみ「焼肉ライク」が閉店ラッシュ。なぜ「コスパが悪い」と言われてしまうのか [Gecko★]
- 【急げ🏃】松のや、公式Xで衝撃の「25%オフ」クーポン発動中! ロースカツ定食&ポテサラが税込580円に!! [パンナ・コッタ★]
- 女性天皇「賛成」69%、将来の皇位継承「不安」68%…読売世論調査 [蚤の市★]
- 【日中】経団連会長、1月の北京訪問に暗雲 中国は受け入れ是非明らかにせず 関係「政冷経冷」に [煮卵★]
- 中国の渡航自粛要請1カ月 大阪の観光バス予約ゼロ、東北にも波及 [蚤の市★]
- 前駐中国大使「高市首相には戦略的思考がない」 [834922174]
- 【高市朗報】鈴木大臣「嫌儲のデマに騙されないで。お米券の使い勝手は悪くない。卵味噌醤油も買えます。現金と変わりません」 [517459952]
- 寒いよ(´・ω・`)
- 🏡おい!返事しろ︎︎!知的障害者!
- 政治家、気づく「ヤードとかいう単なる犯罪拠点、規制したほうがよくないか?」 [792147417]
- 高市、メガソーラー廃止。環境破壊が社会問題化 [792147417]
