web-dev-qa-db-ja.com

三項演算子を使用するC ++コードをRustに移植するにはどうすればよいですか?

このC++コードをRustに移植するにはどうすればよいですか?

auto sgnR = (R >= 0.) ? 1. : -1.;

matchキーワードの例を見てきましたが、どのように機能するのかわかりません。

15

Rustには必要がないため、三項演算子はありません。すべてが何らかの値に評価され、if/elseステートメントも例外ではありません。

let r = 42.42;
let sgn_r = if r >= 0. { 1. } else { -1. };

また、変数名を慣用的なRustに変更したことに気付くでしょう。識別子はsnake_caseを使用します。

Rustが持っている?演算子と混同しないでください。これは 「try演算子」と呼ばれ、エラーを伝播するために使用されます


特にthisコードの場合は、 f64::signum を使用する必要があります。

let r = 42.42_f64;
let sgn_r = r.signum();
48
Shepmaster