LoginSignup
1

More than 5 years have passed since last update.

Ruby 使いがビビった Rust の -1_i32.abs()

Last updated at Posted at 2018-12-31

Ruby の

-1.abs

は,Integer リテラル -1abs メソッド(絶対値を取る)を呼び出している。結果は 1

Rust の

-1_i32.abs()

1 ではなく -1 になる,と。
_i32 は符号付き 32 bit 整数であることを表している)

マジかよ。

これは,Rust の場合,単項前置演算子よりメソッド呼び出しのほうが優先順位が高いからだそう。(『プログラミング Rust』p. 49)

ほえ〜

Ruby の -1.abs- は単項演算子ですらない。リテラルの一部。

(追記 2019-01-01)というか,Ruby でこの - がもし単項演算子だったら,Ruby でもメソッド呼び出しのほうが優先順位が高いから Rust と同じ結果になったよね。

Register as a new user and use Qiita more conveniently

  1. You get articles that match your needs
  2. You can efficiently read back useful information
  3. You can use dark theme
What you can do with signing up
1