Ruby 3.0.0 Preview 1を試す
2020/09/26
Ruby 3.0.0 Preview 1がリリースされたっぽいので一応触ってみた
Ruby 3.0.0 Preview 1 Released https://t.co/o6lkjD5PKw
— Ruby Language (@rubylangorg) September 25, 2020
Ruby 3.0.0 Preview 1を手に入れる
$ docker pull rubylang/ruby:3.0.0-preview1-bionic
3.0.0-preview1-bionic: Pulling from rubylang/ruby
f08d8e2a3ba1: Pull complete
3baa9cb2483b: Pull complete
94e5ff4c0b15: Pull complete
1860925334f9: Pull complete
434ea235d88d: Pull complete
f570e67a5e0c: Pull complete
ae0609335980: Pull complete
8d17f446c58f: Pull complete
14b29e11e63e: Pull complete
8bc4734d3ba1: Pull complete
Digest: sha256:04a9656eb5a0ffb41017de92a78963286819a984e39d842e67387bf1a417dd17
Status: Downloaded newer image for rubylang/ruby:3.0.0-preview1-bionic
docker.io/rubylang/ruby:3.0.0-preview1-bionic
$ docker run --rm -it rubylang/ruby:3.0.0-preview1-bionic ruby -v
ruby 3.0.0preview1 (2020-09-25 master 0096d2b895) [x86_64-linux]
追加された機能(ほんの一部)を試す
これでirbを起動する
$ docker run --rm -it rubylang/ruby:3.0.0-preview1-bionic irb
irb(main):001:0>
右代入演算子
左辺の値を右辺の変数に代入する=>
演算子
irb(main):024:0> 2 + 3 => x
=> 5
irb(main):025:0> puts x
5
=> nil
エンドレスメソッド定義構文
ブロックのend
を省略できる(Scalaっぽい)
元はエイプリルフールネタがとして作られたチケットらしい
irb(main):016:0> def square(x) = x * x
=> :square
irb(main):019:0> square(5)
=> 25
Hash#except
除外できる
ActiveSupport拡張にあったのがRuby本体に組み込まれた
irb(main):026:0> h = { a: 1, b: 2, c: 3 }
=> {:a=>1, :b=>2, :c=>3}
irb(main):027:0> h.except(:a)
=> {:b=>2, :c=>3}
irb(main):028:0> h.except(:a, :c)
=> {:b=>2}