SlideShare una empresa de Scribd logo
1 de 8
Descargar para leer sin conexión
Rubyの魅力と使えるテクニック Part1




                    Written by Keisuke Hata
Rubyの魅力:IO編
• Rubyは、IO処理が非常に得意。
  ゗テレーターという概念で、あっという間に
  IO処理ができちゃいます。




readlines()の後に”.”をつけて,゗テレーターで回しているのがポ゗ント。
readlines()で配列を受け取ってから、回さなくてもいいのです。
配列が入っているのだから、そのまま゗テレーターで要素分処理してしまえ
ばいいんです。仮にテキストが空でも[]のように空の配列が返ってくるので
エラーになることはないです。
IO処理で、簡単にテキスト処理
   • こんなに簡単にIO処理ができるなら、
     ちょっとしたテキスト処理は、ワンラ゗ナーで
     書いちゃいましょう!!これがRubyの魅力。

   数値が記入された、改行区切りのテキストを読み込んで、同じ値は、カット
   し、さらにソートした状態の配列を返す処理です。受け取った配列を出力すると



         これをC言語で1分で書けますか?
         Rubyならかけてしまいます。



ワンライナー:1行だけのプログラム
IO処理:glob(“*.*”)で幸せに
• IO処理でよく使う操作。それは、デゖレクトリ
  内のフゔ゗ルをマスクして処理すること。
• C言語などは、FindFirstFile()等で再帰処理を
  書いて、ごにょごにょ・・・
  さすがにこれは面倒ですよね・・・




そこで Dir.glob()の登場!!
Dir.glob()って何?
• Dir.glob()とは、デゖレクトリ内のゕ゗テムを
  ワ゗ルドカードに従って展開し、配列化してく
  れます。

              使い方もすごく簡単。
              みての通り、すごく直感的に
              書けちゃいますね。

              さらにこのfileという要素をopen()に
              渡して、さっきの例と組み合わせて、
              テキスト処理を楽しく、簡単に!!
あなたは、フゔ゗ルですか?
   デゖレクトリですか?
• フゔ゗ルやデゖレクトリを処理する時に、それがフゔ゗
  ルかデゖレクトリか知りたい時があります

 あんたは、file? , directory?それが知りたい時です。

                ならそのまま書いて下さい。




            Rubyなら思ったことが
            そのままコードにおこせます。
            書けちゃいます!!
もっと素直に聞きたい。
    あなたは、何ですか?
• さっきのコードでも、C言語になれてきた方は、
  衝撃的だと思いますが、もっと衝撃を。。。
  Rubyでは組み込みクラスをユーザーが改良できちゃいます。

                 Stringクラスに
                 file?とdirectory?
                 を追加しました。



                 これで “文字列”.file?って感じで
                 あなたは誰ですか?をそのまま
                 書くことができちゃうわけです。
IOは、深い。。。
• IOは、今日紹介しただけでなく、調べていくと、
  もっと深い仕組みになっています。
  そんな時は、リフゔレンスが役に立つでしょう。
 参考)Rubyリフゔレンスのページ
 http://elbereth-hp.hp.infoseek.co.jp/ruby.html
 http://elbereth-hp.hp.infoseek.co.jp/files/ruby/ruby-man-1.4.6-en-htmlhelp.lzh



• Vimなんかは、Refe入れると、vim上でリフゔレンス引けた
  りしてかなり幸せですが、Emacsとかも似たようなものが
  あるのかもしれませんね。
• KeyHHなんかも入れておくと、調べたい単語の上でキーを押
  せばリフゔレンスが立ち上がったりして、スーパー便利です。
 参考)id:secondlifeさんのページ
 http://subtech.g.hatena.ne.jp/secondlife/20061225/1167024736

Más contenido relacionado

La actualidad más candente

山行記録共有データベース「ヤマレコ」
山行記録共有データベース「ヤマレコ」山行記録共有データベース「ヤマレコ」
山行記録共有データベース「ヤマレコ」Kazumine Matoba
 
Story 05
Story 05Story 05
Story 05JooWan
 
Indirect 範例
Indirect 範例Indirect 範例
Indirect 範例5045033
 
Visio Webマーケティングの基本
Visio Webマーケティングの基本Visio Webマーケティングの基本
Visio Webマーケティングの基本nekosuke
 
ゆとり開発 ~普通の場所でのゲーム作り~
ゆとり開発 ~普通の場所でのゲーム作り~ゆとり開発 ~普通の場所でのゲーム作り~
ゆとり開発 ~普通の場所でのゲーム作り~IGDA Japan
 
クリエイティビティ
クリエイティビティクリエイティビティ
クリエイティビティMika Kojima
 
ハノイの塔を 実装してみる
ハノイの塔を実装してみるハノイの塔を実装してみる
ハノイの塔を 実装してみるHiromu Shioya
 
Presentation Pattern
Presentation PatternPresentation Pattern
Presentation Patternryohji ikebe
 
どっちの億万長者?
どっちの億万長者?どっちの億万長者?
どっちの億万長者?jwda
 
Agile Japan2009 LT - SonicGarden藤原
Agile Japan2009 LT - SonicGarden藤原Agile Japan2009 LT - SonicGarden藤原
Agile Japan2009 LT - SonicGarden藤原士朗 藤原
 
FOSS4G LT - Invitation to ActionScript Programming
FOSS4G LT - Invitation to ActionScript ProgrammingFOSS4G LT - Invitation to ActionScript Programming
FOSS4G LT - Invitation to ActionScript Programminggyuque
 
센트립복용방법 sk77.co.to 카톡kako89 센트립지속시간 센트립효능 센트립부작용
센트립복용방법 sk77.co.to 카톡kako89 센트립지속시간 센트립효능 센트립부작용센트립복용방법 sk77.co.to 카톡kako89 센트립지속시간 센트립효능 센트립부작용
센트립복용방법 sk77.co.to 카톡kako89 센트립지속시간 센트립효능 센트립부작용changeone111
 

La actualidad más candente (15)

山行記録共有データベース「ヤマレコ」
山行記録共有データベース「ヤマレコ」山行記録共有データベース「ヤマレコ」
山行記録共有データベース「ヤマレコ」
 
Konseputo
KonseputoKonseputo
Konseputo
 
Future Of TV
Future Of TVFuture Of TV
Future Of TV
 
Story 05
Story 05Story 05
Story 05
 
Indirect 範例
Indirect 範例Indirect 範例
Indirect 範例
 
Visio Webマーケティングの基本
Visio Webマーケティングの基本Visio Webマーケティングの基本
Visio Webマーケティングの基本
 
ゆとり開発 ~普通の場所でのゲーム作り~
ゆとり開発 ~普通の場所でのゲーム作り~ゆとり開発 ~普通の場所でのゲーム作り~
ゆとり開発 ~普通の場所でのゲーム作り~
 
クリエイティビティ
クリエイティビティクリエイティビティ
クリエイティビティ
 
ハノイの塔を 実装してみる
ハノイの塔を実装してみるハノイの塔を実装してみる
ハノイの塔を 実装してみる
 
BRXbox
BRXboxBRXbox
BRXbox
 
Presentation Pattern
Presentation PatternPresentation Pattern
Presentation Pattern
 
どっちの億万長者?
どっちの億万長者?どっちの億万長者?
どっちの億万長者?
 
Agile Japan2009 LT - SonicGarden藤原
Agile Japan2009 LT - SonicGarden藤原Agile Japan2009 LT - SonicGarden藤原
Agile Japan2009 LT - SonicGarden藤原
 
FOSS4G LT - Invitation to ActionScript Programming
FOSS4G LT - Invitation to ActionScript ProgrammingFOSS4G LT - Invitation to ActionScript Programming
FOSS4G LT - Invitation to ActionScript Programming
 
센트립복용방법 sk77.co.to 카톡kako89 센트립지속시간 센트립효능 센트립부작용
센트립복용방법 sk77.co.to 카톡kako89 센트립지속시간 센트립효능 센트립부작용센트립복용방법 sk77.co.to 카톡kako89 센트립지속시간 센트립효능 센트립부작용
센트립복용방법 sk77.co.to 카톡kako89 센트립지속시간 센트립효능 센트립부작용
 

Destacado

もっと仕事で使うRuby
もっと仕事で使うRubyもっと仕事で使うRuby
もっと仕事で使うRubyKentaro Goto
 
札幌Ruby会議03 Lightning Talk 「どこでもRubyといっしょ ~WindowsMobile携帯にRubyを入れて遊んでみた~」
札幌Ruby会議03 Lightning Talk  「どこでもRubyといっしょ ~WindowsMobile携帯にRubyを入れて遊んでみた~」札幌Ruby会議03 Lightning Talk  「どこでもRubyといっしょ ~WindowsMobile携帯にRubyを入れて遊んでみた~」
札幌Ruby会議03 Lightning Talk 「どこでもRubyといっしょ ~WindowsMobile携帯にRubyを入れて遊んでみた~」Hiro H.
 
20140614 【問題だけスライド】jus & USP友の会共催 シェルワンライナー勉強会@関西(第11回シェル芸勉強会)
20140614 【問題だけスライド】jus & USP友の会共催 シェルワンライナー勉強会@関西(第11回シェル芸勉強会)20140614 【問題だけスライド】jus & USP友の会共催 シェルワンライナー勉強会@関西(第11回シェル芸勉強会)
20140614 【問題だけスライド】jus & USP友の会共催 シェルワンライナー勉強会@関西(第11回シェル芸勉強会)Ryuichi Ueda
 
新しくプログラミング言語・・・Rubyでやってみた
新しくプログラミング言語・・・Rubyでやってみた新しくプログラミング言語・・・Rubyでやってみた
新しくプログラミング言語・・・RubyでやってみたTomoaki Ueda
 
わたしのRubyの楽しみかた
わたしのRubyの楽しみかたわたしのRubyの楽しみかた
わたしのRubyの楽しみかたYuusaku Iwamoto
 
Study: The Future of VR, AR and Self-Driving Cars
Study: The Future of VR, AR and Self-Driving CarsStudy: The Future of VR, AR and Self-Driving Cars
Study: The Future of VR, AR and Self-Driving CarsLinkedIn
 

Destacado (8)

Rubyのススメ
RubyのススメRubyのススメ
Rubyのススメ
 
もっと仕事で使うRuby
もっと仕事で使うRubyもっと仕事で使うRuby
もっと仕事で使うRuby
 
Lt会01_uetch
Lt会01_uetchLt会01_uetch
Lt会01_uetch
 
札幌Ruby会議03 Lightning Talk 「どこでもRubyといっしょ ~WindowsMobile携帯にRubyを入れて遊んでみた~」
札幌Ruby会議03 Lightning Talk  「どこでもRubyといっしょ ~WindowsMobile携帯にRubyを入れて遊んでみた~」札幌Ruby会議03 Lightning Talk  「どこでもRubyといっしょ ~WindowsMobile携帯にRubyを入れて遊んでみた~」
札幌Ruby会議03 Lightning Talk 「どこでもRubyといっしょ ~WindowsMobile携帯にRubyを入れて遊んでみた~」
 
20140614 【問題だけスライド】jus & USP友の会共催 シェルワンライナー勉強会@関西(第11回シェル芸勉強会)
20140614 【問題だけスライド】jus & USP友の会共催 シェルワンライナー勉強会@関西(第11回シェル芸勉強会)20140614 【問題だけスライド】jus & USP友の会共催 シェルワンライナー勉強会@関西(第11回シェル芸勉強会)
20140614 【問題だけスライド】jus & USP友の会共催 シェルワンライナー勉強会@関西(第11回シェル芸勉強会)
 
新しくプログラミング言語・・・Rubyでやってみた
新しくプログラミング言語・・・Rubyでやってみた新しくプログラミング言語・・・Rubyでやってみた
新しくプログラミング言語・・・Rubyでやってみた
 
わたしのRubyの楽しみかた
わたしのRubyの楽しみかたわたしのRubyの楽しみかた
わたしのRubyの楽しみかた
 
Study: The Future of VR, AR and Self-Driving Cars
Study: The Future of VR, AR and Self-Driving CarsStudy: The Future of VR, AR and Self-Driving Cars
Study: The Future of VR, AR and Self-Driving Cars
 

Más de Keisuke Hata

Gcs2014 0225 cocos2d-xjsb
Gcs2014 0225 cocos2d-xjsbGcs2014 0225 cocos2d-xjsb
Gcs2014 0225 cocos2d-xjsbKeisuke Hata
 
apportable meeting
apportable meetingapportable meeting
apportable meetingKeisuke Hata
 
iOS app hacks all_map
iOS app hacks all_mapiOS app hacks all_map
iOS app hacks all_mapKeisuke Hata
 
CCSendMessages introduction
CCSendMessages introductionCCSendMessages introduction
CCSendMessages introductionKeisuke Hata
 
Cocos2d Performance Tips
Cocos2d Performance TipsCocos2d Performance Tips
Cocos2d Performance TipsKeisuke Hata
 
CCResourceAsyncLoader
CCResourceAsyncLoaderCCResourceAsyncLoader
CCResourceAsyncLoaderKeisuke Hata
 
Impact beginngers guide_1.19
Impact beginngers guide_1.19Impact beginngers guide_1.19
Impact beginngers guide_1.19Keisuke Hata
 
Introduction titanium
Introduction titaniumIntroduction titanium
Introduction titaniumKeisuke Hata
 
How To Build Last Fm For I Phone
How To Build Last Fm For I PhoneHow To Build Last Fm For I Phone
How To Build Last Fm For I PhoneKeisuke Hata
 
Mercurial&OnenoteServer
Mercurial&OnenoteServerMercurial&OnenoteServer
Mercurial&OnenoteServerKeisuke Hata
 

Más de Keisuke Hata (20)

Gcs2014 0225 cocos2d-xjsb
Gcs2014 0225 cocos2d-xjsbGcs2014 0225 cocos2d-xjsb
Gcs2014 0225 cocos2d-xjsb
 
apportable meeting
apportable meetingapportable meeting
apportable meeting
 
iOS app hacks all_map
iOS app hacks all_mapiOS app hacks all_map
iOS app hacks all_map
 
iOS app hacks
iOS app hacksiOS app hacks
iOS app hacks
 
Cocos2d platforms
Cocos2d platformsCocos2d platforms
Cocos2d platforms
 
Photobook
PhotobookPhotobook
Photobook
 
TiPhotobook_en
TiPhotobook_enTiPhotobook_en
TiPhotobook_en
 
CCSendMessages introduction
CCSendMessages introductionCCSendMessages introduction
CCSendMessages introduction
 
Cocos2d Performance Tips
Cocos2d Performance TipsCocos2d Performance Tips
Cocos2d Performance Tips
 
CCResourceAsyncLoader
CCResourceAsyncLoaderCCResourceAsyncLoader
CCResourceAsyncLoader
 
Impact beginngers guide_1.19
Impact beginngers guide_1.19Impact beginngers guide_1.19
Impact beginngers guide_1.19
 
Advanced cocos2d
Advanced cocos2dAdvanced cocos2d
Advanced cocos2d
 
Introduction titanium
Introduction titaniumIntroduction titanium
Introduction titanium
 
Hello cocos2d ios
Hello cocos2d iosHello cocos2d ios
Hello cocos2d ios
 
Hello cocos2d ios
Hello cocos2d iosHello cocos2d ios
Hello cocos2d ios
 
Google wave2010
Google wave2010Google wave2010
Google wave2010
 
How To Build Last Fm For I Phone
How To Build Last Fm For I PhoneHow To Build Last Fm For I Phone
How To Build Last Fm For I Phone
 
Mercurial&OnenoteServer
Mercurial&OnenoteServerMercurial&OnenoteServer
Mercurial&OnenoteServer
 
Math1 Vector
Math1 VectorMath1 Vector
Math1 Vector
 
Wiipen
WiipenWiipen
Wiipen
 

Are You Enjoy Ruby 1 Day

  • 2. Rubyの魅力:IO編 • Rubyは、IO処理が非常に得意。 ゗テレーターという概念で、あっという間に IO処理ができちゃいます。 readlines()の後に”.”をつけて,゗テレーターで回しているのがポ゗ント。 readlines()で配列を受け取ってから、回さなくてもいいのです。 配列が入っているのだから、そのまま゗テレーターで要素分処理してしまえ ばいいんです。仮にテキストが空でも[]のように空の配列が返ってくるので エラーになることはないです。
  • 3. IO処理で、簡単にテキスト処理 • こんなに簡単にIO処理ができるなら、 ちょっとしたテキスト処理は、ワンラ゗ナーで 書いちゃいましょう!!これがRubyの魅力。 数値が記入された、改行区切りのテキストを読み込んで、同じ値は、カット し、さらにソートした状態の配列を返す処理です。受け取った配列を出力すると これをC言語で1分で書けますか? Rubyならかけてしまいます。 ワンライナー:1行だけのプログラム
  • 4. IO処理:glob(“*.*”)で幸せに • IO処理でよく使う操作。それは、デゖレクトリ 内のフゔ゗ルをマスクして処理すること。 • C言語などは、FindFirstFile()等で再帰処理を 書いて、ごにょごにょ・・・ さすがにこれは面倒ですよね・・・ そこで Dir.glob()の登場!!
  • 5. Dir.glob()って何? • Dir.glob()とは、デゖレクトリ内のゕ゗テムを ワ゗ルドカードに従って展開し、配列化してく れます。 使い方もすごく簡単。 みての通り、すごく直感的に 書けちゃいますね。 さらにこのfileという要素をopen()に 渡して、さっきの例と組み合わせて、 テキスト処理を楽しく、簡単に!!
  • 6. あなたは、フゔ゗ルですか? デゖレクトリですか? • フゔ゗ルやデゖレクトリを処理する時に、それがフゔ゗ ルかデゖレクトリか知りたい時があります あんたは、file? , directory?それが知りたい時です。 ならそのまま書いて下さい。 Rubyなら思ったことが そのままコードにおこせます。 書けちゃいます!!
  • 7. もっと素直に聞きたい。 あなたは、何ですか? • さっきのコードでも、C言語になれてきた方は、 衝撃的だと思いますが、もっと衝撃を。。。 Rubyでは組み込みクラスをユーザーが改良できちゃいます。 Stringクラスに file?とdirectory? を追加しました。 これで “文字列”.file?って感じで あなたは誰ですか?をそのまま 書くことができちゃうわけです。
  • 8. IOは、深い。。。 • IOは、今日紹介しただけでなく、調べていくと、 もっと深い仕組みになっています。 そんな時は、リフゔレンスが役に立つでしょう。 参考)Rubyリフゔレンスのページ http://elbereth-hp.hp.infoseek.co.jp/ruby.html http://elbereth-hp.hp.infoseek.co.jp/files/ruby/ruby-man-1.4.6-en-htmlhelp.lzh • Vimなんかは、Refe入れると、vim上でリフゔレンス引けた りしてかなり幸せですが、Emacsとかも似たようなものが あるのかもしれませんね。 • KeyHHなんかも入れておくと、調べたい単語の上でキーを押 せばリフゔレンスが立ち上がったりして、スーパー便利です。 参考)id:secondlifeさんのページ http://subtech.g.hatena.ne.jp/secondlife/20061225/1167024736