SlideShare a Scribd company logo
1 of 19
Download to read offline
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

What's hot

コンパイラ指向ReVIEW
コンパイラ指向ReVIEWコンパイラ指向ReVIEW
コンパイラ指向ReVIEW
Masahiro Wakame
 
Play frameworkについて
Play frameworkについてPlay frameworkについて
Play frameworkについて
Shinobu Okano
 
Java scriptの進化
Java scriptの進化Java scriptの進化
Java scriptの進化
maruyama097
 
JVMの中身を可視化してみた
JVMの中身を可視化してみたJVMの中身を可視化してみた
JVMの中身を可視化してみた
Kengo Toda
 
JJUG CCC 2013 Fall「JVMコードリーディング入門-JVMのOS抽象化レイヤーについて-」
JJUG CCC 2013 Fall「JVMコードリーディング入門-JVMのOS抽象化レイヤーについて-」JJUG CCC 2013 Fall「JVMコードリーディング入門-JVMのOS抽象化レイヤーについて-」
JJUG CCC 2013 Fall「JVMコードリーディング入門-JVMのOS抽象化レイヤーについて-」
y torazuka
 
第4回 インフラ勉強会@福岡 Fluentdハンズオン
第4回 インフラ勉強会@福岡 Fluentdハンズオン第4回 インフラ勉強会@福岡 Fluentdハンズオン
第4回 インフラ勉強会@福岡 Fluentdハンズオン
学 松崎
 
20091119_sinatraを使ってみた
20091119_sinatraを使ってみた20091119_sinatraを使ってみた
20091119_sinatraを使ってみた
ngi group.
 
Iron rubyとsinatraで作るデスクトップアプリ
Iron rubyとsinatraで作るデスクトップアプリIron rubyとsinatraで作るデスクトップアプリ
Iron rubyとsinatraで作るデスクトップアプリ
Yamamoto Kazuhisa
 
Sinatraの紹介
Sinatraの紹介Sinatraの紹介
Sinatraの紹介
longkey1
 

What's hot (20)

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

Viewers also liked

Sinatraでwebアプリケーション開発を学ぶ
Sinatraでwebアプリケーション開発を学ぶSinatraでwebアプリケーション開発を学ぶ
Sinatraでwebアプリケーション開発を学ぶ
Hiroshi Oyamada
 
ソーシャルアプリを分析してみた
ソーシャルアプリを分析してみたソーシャルアプリを分析してみた
ソーシャルアプリを分析してみた
Drecom Co., Ltd.
 
実録!Railsのはまりポイント10選
実録!Railsのはまりポイント10選実録!Railsのはまりポイント10選
実録!Railsのはまりポイント10選
Drecom Co., Ltd.
 
Ruby on Rails でつくるアタシ好みの愛され Web サービス
Ruby on Rails でつくるアタシ好みの愛され Web サービスRuby on Rails でつくるアタシ好みの愛され Web サービス
Ruby on Rails でつくるアタシ好みの愛され Web サービス
Yoji Shidara
 
ログ解析を支えるNoSQLの技術
ログ解析を支えるNoSQLの技術ログ解析を支えるNoSQLの技術
ログ解析を支えるNoSQLの技術
Drecom Co., Ltd.
 
5年後のデータサイエンティスト
5年後のデータサイエンティスト5年後のデータサイエンティスト
5年後のデータサイエンティスト
Drecom Co., Ltd.
 
Railsによるワイルドなソフトウェア開発
Railsによるワイルドなソフトウェア開発Railsによるワイルドなソフトウェア開発
Railsによるワイルドなソフトウェア開発
Drecom Co., Ltd.
 

Viewers also liked (20)

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

Similar to Ruby24

2011.7.2 Ruby勉強会@札幌 「はじめてのRubygemsへのライブラリ公開」
2011.7.2 Ruby勉強会@札幌 「はじめてのRubygemsへのライブラリ公開」2011.7.2 Ruby勉強会@札幌 「はじめてのRubygemsへのライブラリ公開」
2011.7.2 Ruby勉強会@札幌 「はじめてのRubygemsへのライブラリ公開」
Hiro H.
 
20140212 develove テスト自動化のアプローチ拡張トレンド 〜Excel項目定義手動テストから自動テストへ〜
20140212 develove テスト自動化のアプローチ拡張トレンド 〜Excel項目定義手動テストから自動テストへ〜20140212 develove テスト自動化のアプローチ拡張トレンド 〜Excel項目定義手動テストから自動テストへ〜
20140212 develove テスト自動化のアプローチ拡張トレンド 〜Excel項目定義手動テストから自動テストへ〜
Fukui Osamu
 
はじめてのRuby拡張ライブラリ
はじめてのRuby拡張ライブラリはじめてのRuby拡張ライブラリ
はじめてのRuby拡張ライブラリ
Masahiro Tomita
 

Similar to Ruby24 (20)

組込み向けRuby処理系mrubyの可能性
組込み向けRuby処理系mrubyの可能性組込み向けRuby処理系mrubyの可能性
組込み向けRuby処理系mrubyの可能性
 
とっとるびー(2回目)発表資料
とっとるびー(2回目)発表資料とっとるびー(2回目)発表資料
とっとるびー(2回目)発表資料
 
Railsの今昔
Railsの今昔Railsの今昔
Railsの今昔
 
マニアックなRuby 2.7新機能紹介
マニアックなRuby 2.7新機能紹介マニアックなRuby 2.7新機能紹介
マニアックなRuby 2.7新機能紹介
 
Ruby リファレンスマニュアル改善計画 2022 進捗報告
Ruby リファレンスマニュアル改善計画 2022 進捗報告Ruby リファレンスマニュアル改善計画 2022 進捗報告
Ruby リファレンスマニュアル改善計画 2022 進捗報告
 
Ruby と C# をつなぐ
Ruby と C# をつなぐRuby と C# をつなぐ
Ruby と C# をつなぐ
 
『健全なフロントエンド開発をしよう 〜Railsに乗っかるという選択編〜』 アップ用
『健全なフロントエンド開発をしよう 〜Railsに乗っかるという選択編〜』 アップ用『健全なフロントエンド開発をしよう 〜Railsに乗っかるという選択編〜』 アップ用
『健全なフロントエンド開発をしよう 〜Railsに乗っかるという選択編〜』 アップ用
 
Rails解説セミナー: リリースノート解説編
Rails解説セミナー: リリースノート解説編Rails解説セミナー: リリースノート解説編
Rails解説セミナー: リリースノート解説編
 
Ruby on Rails を用いたWEBアプリケーションの開発
Ruby on Rails を用いたWEBアプリケーションの開発Ruby on Rails を用いたWEBアプリケーションの開発
Ruby on Rails を用いたWEBアプリケーションの開発
 
PHPer のための Ruby 教室
PHPer のための Ruby 教室PHPer のための Ruby 教室
PHPer のための Ruby 教室
 
RubyによるMac OS Xデスクトップアプリケーション開発入門--Snow Leopard対応版
RubyによるMac OS Xデスクトップアプリケーション開発入門--Snow Leopard対応版RubyによるMac OS Xデスクトップアプリケーション開発入門--Snow Leopard対応版
RubyによるMac OS Xデスクトップアプリケーション開発入門--Snow Leopard対応版
 
Ruby on RedHat Enterprise Linux
Ruby on RedHat Enterprise LinuxRuby on RedHat Enterprise Linux
Ruby on RedHat Enterprise Linux
 
2011.7.2 Ruby勉強会@札幌 「はじめてのRubygemsへのライブラリ公開」
2011.7.2 Ruby勉強会@札幌 「はじめてのRubygemsへのライブラリ公開」2011.7.2 Ruby勉強会@札幌 「はじめてのRubygemsへのライブラリ公開」
2011.7.2 Ruby勉強会@札幌 「はじめてのRubygemsへのライブラリ公開」
 
Rubinius Under a Microscope
Rubinius Under a MicroscopeRubinius Under a Microscope
Rubinius Under a Microscope
 
20140212 develove テスト自動化のアプローチ拡張トレンド 〜Excel項目定義手動テストから自動テストへ〜
20140212 develove テスト自動化のアプローチ拡張トレンド 〜Excel項目定義手動テストから自動テストへ〜20140212 develove テスト自動化のアプローチ拡張トレンド 〜Excel項目定義手動テストから自動テストへ〜
20140212 develove テスト自動化のアプローチ拡張トレンド 〜Excel項目定義手動テストから自動テストへ〜
 
はじめてのRuby拡張ライブラリ
はじめてのRuby拡張ライブラリはじめてのRuby拡張ライブラリ
はじめてのRuby拡張ライブラリ
 
Bundler kanazawa.rb meetup #2 2012/09/19
Bundler kanazawa.rb meetup #2 2012/09/19Bundler kanazawa.rb meetup #2 2012/09/19
Bundler kanazawa.rb meetup #2 2012/09/19
 
本番環境で使える実行コード記録機能
本番環境で使える実行コード記録機能本番環境で使える実行コード記録機能
本番環境で使える実行コード記録機能
 
RubyからC#を扱う
RubyからC#を扱うRubyからC#を扱う
RubyからC#を扱う
 
Mroonga開発者が来たぞ!
Mroonga開発者が来たぞ!Mroonga開発者が来たぞ!
Mroonga開発者が来たぞ!
 

More from Masahiro Tomita

「理論から学ぶデータベース実践入門」読書会スペシャル
「理論から学ぶデータベース実践入門」読書会スペシャル「理論から学ぶデータベース実践入門」読書会スペシャル
「理論から学ぶデータベース実践入門」読書会スペシャル
Masahiro Tomita
 
アジャイルジャパン長野サテライト
アジャイルジャパン長野サテライトアジャイルジャパン長野サテライト
アジャイルジャパン長野サテライト
Masahiro Tomita
 
MySQLのプロトコル解説
MySQLのプロトコル解説MySQLのプロトコル解説
MySQLのプロトコル解説
Masahiro Tomita
 

More from Masahiro Tomita (20)

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