SlideShare a Scribd company logo
Ruby 2.4 Powered by Rabbit 2.1.9
Ruby 2.4
NSEG#80
とみたまさひろ
2016-10-22
Ruby 2.4 Powered by Rabbit 2.1.9
自己紹介
とみた まさひろ
http://tmtms.hatenablog.com
http://twitter.com/tmtms
https://github.com/tmtm
長野県北部在住プログラマー
Ruby / MySQL / Postfix
ときどきSoftwareDesignに寄稿
2016/12月号に掲載予定
Ruby 2.4 Powered by Rabbit 2.1.9
Ruby
オブジェクト指向スクリプト言語
整数、文字列、クラスなどほぼすべてがオブジェクト
毎年クリスマスにバージョンアップ
Ruby 2.4 Powered by Rabbit 2.1.9
Ruby 2.4
2016/12/24あたりにリリース予定
現在preview2公開中
Ruby 2.4 Powered by Rabbit 2.1.9
新機能/変更点
よいまとめを発見
サンプルコードでわかる!Ruby 2.4の新機能と変更点
http://qiita.com/jnchito/items/9f9d45581816f121af07
Ruby 2.4 Powered by Rabbit 2.1.9
FixnumとBignumが廃止
# 2.3
123.class #=> Fixnum
12345678901234567890.class #=> Bignum
# 2.4
123.class #=> Integer
12345678901234567890.class #=> Integer
Fixnum #=> Integer
Bignum #=> Integer
Ruby 2.4 Powered by Rabbit 2.1.9
Enumerable#sum
全要素の合計
[1, 2, 3, 4].inject{|a,b| a+b} #=> 10
[1, 2, 3, 4].inject(:+) #=> 10
[1, 2, 3, 4].sum #=> 10
Ruby 2.4 Powered by Rabbit 2.1.9
Enumerable#sum
浮動小数点の誤差が蓄積しない
([0.1]*10).inject(:+) #=> 0.9999999999999999
([0.1]*10).sum #=> 1.0
Ruby 2.4 Powered by Rabbit 2.1.9
String#upcase, #downcase, #swapcase, #caitalize
非ASCIIラテン文字の大文字小文字化(全角も)
# 2.3
"ABCÅÔABC".downcase #=> "abcÅÔABC"
# 2.4
"ABCÅÔABC".downcase #=> "abcåôabc"
"ABCÅÔABC".downcase(:ascii) #=> "abcÅÔABC"
Ruby 2.4 Powered by Rabbit 2.1.9
Comparable#clamp
指定した範囲内に丸める
[-1, 0, 1, 2, 3, 4].map{|n| n.clamp(0, 3)}
#=> [0, 0, 1, 2, 3, 3]
Ruby 2.4 Powered by Rabbit 2.1.9
Numeric#ceil, #floor, #truncate
小数点以下の位置を指定可能
1.11111.ceil #=> 2
1.11111.ceil(1) #=> 1.2
1.11111.ceil(2) #=> 1.12
1.11111.ceil(3) #=> 1.112
1.11111.ceil(4) #=> 1.1112
Ruby 2.4 Powered by Rabbit 2.1.9
Integer#digits
各桁の数値を返す
1234.digits #=> [4, 3, 2, 1]
0x8A0.digits(16) #=> [0, 10, 8]
Ruby 2.4 Powered by Rabbit 2.1.9
Regexp#match?
比較だけ。$~, $`, $’ への設定なし
/bcd/ =~ "abcde" #=> 1
[$`, $~, $']
#=> ["a", #<MatchData "bcd">, "e"]
/bcd/.match?("abcde") #=> true
[nil, nil, nil]
Ruby 2.4 Powered by Rabbit 2.1.9
MatchData#named_captures, #values_at
m = "2016-10-22"
.match(/(?<year>dddd)-(?<month>dd)-(?<day>dd)/)
[m[:year], m[:month], m[:day]]
#=> ["2016", "10", "22"]
m.named_captures
#=> {"year"=>"2016", "month"=>"10", "day"=>"22"}
m.values_at(:year) #=> "2016"
Ruby 2.4 Powered by Rabbit 2.1.9
String.new(:capacity)
文字列の初期メモリ量を指定
String.new(capacity: 1000) #=> ""
Ruby 2.4 Powered by Rabbit 2.1.9
Enumerable#uniq
Array にはあったけど Enumerable には今までなかった
[1, 2, 3, 2, 1].uniq #=> [1, 2, 3]
{a:1, b:2, c:1}.uniq{|k,v| v})
#=> [[:a, 1], [:b, 2]]
Ruby 2.4 Powered by Rabbit 2.1.9
などなど
Ruby 2.4 Powered by Rabbit 2.1.9
色々便利になってるので期待
Ruby 2.4 Powered by Rabbit 2.1.9
以上

More Related Content

PDF
Ruby紹介
PDF
MySQL/Ruby終了のお知らせ
PDF
人間たちとsystemd
PDF
Ember コミュニティとわたし
PDF
ng-japan 2015 TypeScript+AngularJS 1.3
PDF
mrubyのすすめ
PPTX
Rubyで.netを扱う
PDF
Ruby で高速なプログラムを書く
Ruby紹介
MySQL/Ruby終了のお知らせ
人間たちとsystemd
Ember コミュニティとわたし
ng-japan 2015 TypeScript+AngularJS 1.3
mrubyのすすめ
Rubyで.netを扱う
Ruby で高速なプログラムを書く

What's hot (20)

PDF
コンパイラ指向ReVIEW
PDF
emruby: ブラウザで動くRuby
PPT
play framework 勉強会 in 関西
PDF
Railsチュートリアル(second)を終えて
PPTX
Play frameworkについて
PPTX
Rancher jp1周年振り返り anniversary meetup slide summary
PDF
Java scriptの進化
PDF
JavaScript.Next Returns
PPTX
GitLab Meetup Tokyo#2 Rancher gitlab container registry
PPTX
Railsのフロントエンド開発を考える
PDF
JVMの中身を可視化してみた
PDF
JJUG CCC 2013 Fall「JVMコードリーディング入門-JVMのOS抽象化レイヤーについて-」
PDF
第4回 インフラ勉強会@福岡 Fluentdハンズオン
PPT
20091119_sinatraを使ってみた
ODP
Iron rubyとsinatraで作るデスクトップアプリ
PPTX
Rails+Markdownでなにかつくる
ODP
Sinatraの紹介
PPTX
Rancher LT Talk 20170126
PDF
YARV INTRODUCTION
PPTX
WindowsユーザのためのRails環境構築
コンパイラ指向ReVIEW
emruby: ブラウザで動くRuby
play framework 勉強会 in 関西
Railsチュートリアル(second)を終えて
Play frameworkについて
Rancher jp1周年振り返り anniversary meetup slide summary
Java scriptの進化
JavaScript.Next Returns
GitLab Meetup Tokyo#2 Rancher gitlab container registry
Railsのフロントエンド開発を考える
JVMの中身を可視化してみた
JJUG CCC 2013 Fall「JVMコードリーディング入門-JVMのOS抽象化レイヤーについて-」
第4回 インフラ勉強会@福岡 Fluentdハンズオン
20091119_sinatraを使ってみた
Iron rubyとsinatraで作るデスクトップアプリ
Rails+Markdownでなにかつくる
Sinatraの紹介
Rancher LT Talk 20170126
YARV INTRODUCTION
WindowsユーザのためのRails環境構築
Ad

Viewers also liked (20)

PDF
MySQLの文字コード事情 2017版
PDF
MySQLの文字コード事情
PDF
進捗と品質
PDF
吟遊プログラマーをめざして
PDF
Sinatraでwebアプリケーション開発を学ぶ
PDF
[CEDEC2014]モバイルゲームにおける社内基盤開発と“実録”
PDF
フライングゲットガチャ セミナー資料
PDF
Rails5とAPIモードについての解説
PDF
ソーシャルアプリを分析してみた
PDF
CEDEC 2015 Cocos2d-x と社内基盤の付き合い方 〜アップストリームファーストを目指して〜
KEY
実録!Railsのはまりポイント10選
PDF
CEDEC 2015 IoT向け汎用protocol MQTTのリアルタイムゲーム通信利用と実装、そして未来へ…
PDF
Ruby on Rails でつくるアタシ好みの愛され Web サービス
PDF
Ruby 2.4 / Rails 5.0に上げた際のパッチ5選
PDF
ログ解析を支えるNoSQLの技術
PPTX
5年後のデータサイエンティスト
KEY
Railsによるワイルドなソフトウェア開発
PDF
CEDEC 2016 Metal と Vulkan を用いた水彩画レンダリング技法の紹介
KEY
エンジニア生存戦略
PDF
powershell-charm
MySQLの文字コード事情 2017版
MySQLの文字コード事情
進捗と品質
吟遊プログラマーをめざして
Sinatraでwebアプリケーション開発を学ぶ
[CEDEC2014]モバイルゲームにおける社内基盤開発と“実録”
フライングゲットガチャ セミナー資料
Rails5とAPIモードについての解説
ソーシャルアプリを分析してみた
CEDEC 2015 Cocos2d-x と社内基盤の付き合い方 〜アップストリームファーストを目指して〜
実録!Railsのはまりポイント10選
CEDEC 2015 IoT向け汎用protocol MQTTのリアルタイムゲーム通信利用と実装、そして未来へ…
Ruby on Rails でつくるアタシ好みの愛され Web サービス
Ruby 2.4 / Rails 5.0に上げた際のパッチ5選
ログ解析を支えるNoSQLの技術
5年後のデータサイエンティスト
Railsによるワイルドなソフトウェア開発
CEDEC 2016 Metal と Vulkan を用いた水彩画レンダリング技法の紹介
エンジニア生存戦略
powershell-charm
Ad

Similar to Ruby24 (20)

PDF
Ruby 2.5
PDF
Rubyの黒魔術
PDF
マニアックなRuby 2.7新機能紹介
PDF
組込み向けRuby処理系mrubyの可能性
PDF
表参道.Rb #27 pattern-match の一部を読む
PDF
Ruby2.0 - refinements - 鳥取Ruby会 第11回
PDF
Ruby開発が教えてくれたこと
PDF
Rubyによる本気のGC
PDF
桐島、Rubyやめるってよ
PDF
Red Data Tools
PDF
リーダブルコードを読んだ後
PDF
プログラマー
PDF
明日使える超高速Ruby - RXbyak (Mitaka.rb #5)
PDF
Matz presentation for Fukuoka Ruby Days 2010
PDF
はじめてのRuby拡張ライブラリ
PDF
Ruby でつくる型付き Ruby
ODP
Rubyのコードを読んでみよう(オブジェクト編)
PDF
アプリケーションへのRubyインタープリターの組み込み
PDF
Rubyな日々
PDF
Language update 2018 - ruby
Ruby 2.5
Rubyの黒魔術
マニアックなRuby 2.7新機能紹介
組込み向けRuby処理系mrubyの可能性
表参道.Rb #27 pattern-match の一部を読む
Ruby2.0 - refinements - 鳥取Ruby会 第11回
Ruby開発が教えてくれたこと
Rubyによる本気のGC
桐島、Rubyやめるってよ
Red Data Tools
リーダブルコードを読んだ後
プログラマー
明日使える超高速Ruby - RXbyak (Mitaka.rb #5)
Matz presentation for Fukuoka Ruby Days 2010
はじめてのRuby拡張ライブラリ
Ruby でつくる型付き Ruby
Rubyのコードを読んでみよう(オブジェクト編)
アプリケーションへのRubyインタープリターの組み込み
Rubyな日々
Language update 2018 - ruby

More from Masahiro Tomita (20)

PDF
お前の罪を数えろ
PDF
本当はこわいMySQLプロトコル
PDF
ネットワークこわい
PDF
MySQLの文字コード事情 2017春版
PDF
MySQLを拡張する
PDF
「理論から学ぶデータベース実践入門」読書会スペシャル
PDF
MyNAができるまで
PDF
文字化け
PDF
PDF
メールの暗号化
PDF
文字化け
PDF
進捗と品質
PDF
アジャイルジャパン長野サテライト
PDF
🍣=🍺
PDF
本当はこわいエンコーディングの話
PDF
Sequelのすすめ
PDF
MySQLのプロトコル解説
PDF
Dockerイメージを作る
PDF
Dockerさわってみた
お前の罪を数えろ
本当はこわいMySQLプロトコル
ネットワークこわい
MySQLの文字コード事情 2017春版
MySQLを拡張する
「理論から学ぶデータベース実践入門」読書会スペシャル
MyNAができるまで
文字化け
メールの暗号化
文字化け
進捗と品質
アジャイルジャパン長野サテライト
🍣=🍺
本当はこわいエンコーディングの話
Sequelのすすめ
MySQLのプロトコル解説
Dockerイメージを作る
Dockerさわってみた

Ruby24

  • 1. Ruby 2.4 Powered by Rabbit 2.1.9 Ruby 2.4 NSEG#80 とみたまさひろ 2016-10-22
  • 2. Ruby 2.4 Powered by Rabbit 2.1.9 自己紹介 とみた まさひろ http://tmtms.hatenablog.com http://twitter.com/tmtms https://github.com/tmtm 長野県北部在住プログラマー Ruby / MySQL / Postfix ときどきSoftwareDesignに寄稿 2016/12月号に掲載予定
  • 3. Ruby 2.4 Powered by Rabbit 2.1.9 Ruby オブジェクト指向スクリプト言語 整数、文字列、クラスなどほぼすべてがオブジェクト 毎年クリスマスにバージョンアップ
  • 4. Ruby 2.4 Powered by Rabbit 2.1.9 Ruby 2.4 2016/12/24あたりにリリース予定 現在preview2公開中
  • 5. Ruby 2.4 Powered by Rabbit 2.1.9 新機能/変更点 よいまとめを発見 サンプルコードでわかる!Ruby 2.4の新機能と変更点 http://qiita.com/jnchito/items/9f9d45581816f121af07
  • 6. Ruby 2.4 Powered by Rabbit 2.1.9 FixnumとBignumが廃止 # 2.3 123.class #=> Fixnum 12345678901234567890.class #=> Bignum # 2.4 123.class #=> Integer 12345678901234567890.class #=> Integer Fixnum #=> Integer Bignum #=> Integer
  • 7. Ruby 2.4 Powered by Rabbit 2.1.9 Enumerable#sum 全要素の合計 [1, 2, 3, 4].inject{|a,b| a+b} #=> 10 [1, 2, 3, 4].inject(:+) #=> 10 [1, 2, 3, 4].sum #=> 10
  • 8. Ruby 2.4 Powered by Rabbit 2.1.9 Enumerable#sum 浮動小数点の誤差が蓄積しない ([0.1]*10).inject(:+) #=> 0.9999999999999999 ([0.1]*10).sum #=> 1.0
  • 9. Ruby 2.4 Powered by Rabbit 2.1.9 String#upcase, #downcase, #swapcase, #caitalize 非ASCIIラテン文字の大文字小文字化(全角も) # 2.3 "ABCÅÔABC".downcase #=> "abcÅÔABC" # 2.4 "ABCÅÔABC".downcase #=> "abcåôabc" "ABCÅÔABC".downcase(:ascii) #=> "abcÅÔABC"
  • 10. Ruby 2.4 Powered by Rabbit 2.1.9 Comparable#clamp 指定した範囲内に丸める [-1, 0, 1, 2, 3, 4].map{|n| n.clamp(0, 3)} #=> [0, 0, 1, 2, 3, 3]
  • 11. Ruby 2.4 Powered by Rabbit 2.1.9 Numeric#ceil, #floor, #truncate 小数点以下の位置を指定可能 1.11111.ceil #=> 2 1.11111.ceil(1) #=> 1.2 1.11111.ceil(2) #=> 1.12 1.11111.ceil(3) #=> 1.112 1.11111.ceil(4) #=> 1.1112
  • 12. Ruby 2.4 Powered by Rabbit 2.1.9 Integer#digits 各桁の数値を返す 1234.digits #=> [4, 3, 2, 1] 0x8A0.digits(16) #=> [0, 10, 8]
  • 13. Ruby 2.4 Powered by Rabbit 2.1.9 Regexp#match? 比較だけ。$~, $`, $’ への設定なし /bcd/ =~ "abcde" #=> 1 [$`, $~, $'] #=> ["a", #<MatchData "bcd">, "e"] /bcd/.match?("abcde") #=> true [nil, nil, nil]
  • 14. Ruby 2.4 Powered by Rabbit 2.1.9 MatchData#named_captures, #values_at m = "2016-10-22" .match(/(?<year>dddd)-(?<month>dd)-(?<day>dd)/) [m[:year], m[:month], m[:day]] #=> ["2016", "10", "22"] m.named_captures #=> {"year"=>"2016", "month"=>"10", "day"=>"22"} m.values_at(:year) #=> "2016"
  • 15. Ruby 2.4 Powered by Rabbit 2.1.9 String.new(:capacity) 文字列の初期メモリ量を指定 String.new(capacity: 1000) #=> ""
  • 16. Ruby 2.4 Powered by Rabbit 2.1.9 Enumerable#uniq Array にはあったけど Enumerable には今までなかった [1, 2, 3, 2, 1].uniq #=> [1, 2, 3] {a:1, b:2, c:1}.uniq{|k,v| v}) #=> [[:a, 1], [:b, 2]]
  • 17. Ruby 2.4 Powered by Rabbit 2.1.9 などなど
  • 18. Ruby 2.4 Powered by Rabbit 2.1.9 色々便利になってるので期待
  • 19. Ruby 2.4 Powered by Rabbit 2.1.9 以上