0
はどのように錆に私はポートこのC++コードすることができます:三元演算子を使用するC++コードをRustに移植するにはどうすればよいですか?
auto sgnR = (R >= 0.) ? 1. : -1.;
私はmatch
キーワードでいくつかの例を見てきましたが、私はそれがどのように動作するか理解していません。
はどのように錆に私はポートこのC++コードすることができます:三元演算子を使用するC++コードをRustに移植するにはどうすればよいですか?
auto sgnR = (R >= 0.) ? 1. : -1.;
私はmatch
キーワードでいくつかの例を見てきましたが、私はそれがどのように動作するか理解していません。
錆は三項演算子を必要としないため、三項演算子を持たない。すべては、いくつかの値に評価され、if
/else
文も例外ではありません:
let r = 42.42;
let sgn_r = if r >= 0. { 1. } else { -1. };
あなたは私も慣用錆であるためにあなたの変数名を変更したことに注意しましょう。識別子はsnake_case
を使用します。
?
オペレーターとの間で混乱しないようにしてください。Rust はです。これはcalled the "try operator" and is used to propagate errorsです。
このコード、それはあなたがf64::signum
を使用する必要がありそうだ。
let r = 42.42_f64;
let sgn_r = r.signum();
https://github.com/rust-lang/rfcs/issues/1362 – Barmar
Googleの「さび三項演算子"あなたはヒットの束を見つけるでしょう。 – Barmar
@Baumこの質問は、RustとC++の両方を理解する必要があるので、両方のタグを持つ必要があるごくわずかな質問の1つです。しかし、私はそれが他の理由で閉鎖されるべきだと思う。 – Galik