2017-07-14 9 views
0

はどのように錆に私はポートこのC++コードすることができます:三元演算子を使用するC++コードをRustに移植するにはどうすればよいですか?

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

私はmatchキーワードでいくつかの例を見てきましたが、私はそれがどのように動作するか理解していません。

+1

https://github.com/rust-lang/rfcs/issues/1362 – Barmar

+3

Googleの「さび三項演算子"あなたはヒットの束を見つけるでしょう。 – Barmar

+0

@Baumこの質問は、RustとC++の両方を理解する必要があるので、両方のタグを持つ必要があるごくわずかな質問の1つです。しかし、私はそれが他の理由で閉鎖されるべきだと思う。 – Galik

答えて

9

錆は三項演算子を必要としないため、三項演算子を持たない。すべては、いくつかの値に評価され、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(); 
関連する問題