CodeFlipper




 プログラミング言語 Ruby

        2章
Ruby プログラムの構造と実行


                  2010/10/10
                  mong_lee
CodeFlipper




    コメントと埋め込みドキュメント
●   #(シャープ)の後は、コメント
●   複数行またがるコメントは、コメントの前後行に単独
    の#を挿入するのが慣例
●   「=begin~=end」で囲むと...
CodeFlipper




        ドキュメント用コメント
●
    モジュール定義の前に、特別な形式のコメントを入れ
    ることによってAPIドキュメントを組み込める
●   rdocツールを使用して、HTMLに整形したりr...
CodeFlipper




                      リテラル
●   数値、文字列、正規表現の3種類(3章でやるよ)
●   記号は演算子などで使われる(4章でやるよ)


    11         #整数リテラル
...
CodeFlipper




                    識別子(1)
●   英数字と_(アンダースコア)から構成される
●   先頭数字は×、アンダースコアは○
●   先頭大文字は定数扱い(値変更で警告)
●   複数の語か...
CodeFlipper




                          識別子(2)
●
    先頭や末尾が記号の識別子は特別な意味がある


    $global_variable
     $global_variable ...
CodeFlipper




                       キーワード
●
    キーワード≒予約語
●   $、@、@@などをつけると使用できるが、分かりづ
    らくなるため、使わないほうが無難
●   Kernel、...
CodeFlipper




                       空白
●
    スペース、タブ、改行はトークンを区切るために使用
●
    空白の挿入や、削除によりプログラムの意味が変わっ
    たしまうことがある
●   ...
CodeFlipper




     スペースとメソッド呼び出し
●
    メソッド呼び出しを囲む()は、一定の条件が満たさ
    れているときに省略できる
●   あいまいな記述は-wオプションで警告を出すようにで
    きる
  ...
CodeFlipper




                         構文構造
●   Rubyの構文の基本単位は式
●   Rubyインタープリタは式を評価して値を生成する
●   式をRubyのキーワードで結合すると、文が作られ...
CodeFlipper




              Rubyのブロック構造
●   Rubyの文のほとんどはネストされたコードブロック
    を持っている
●   区切りからスペース2個分インデントする習慣
●   二種類のブロックを...
CodeFlipper




               ファイル構造
●   “shebang” コメント(#!/usr/bin/ruby -wなど)は一行
    目に記述する
●   “coding” コメント(#coding: ut...
CodeFlipper




    プログラムのエンコーディング
●   Rubyの字句解析ルールはASCIIキャラクタセットの文
    字を使って定義されている
●   ASCII文字を完全に表現できるエンコーディングであ
    れば...
CodeFlipper




          プログラムの実行
●
    基本的に先頭から末尾に順次実行される
●   プログラムを終了させるような文(exit!)、ファイル
    の末尾、__END__トークンが書かれた行まで実行
...
Upcoming SlideShare
Loading in …5
×

プログラミング言語 Ruby 2章 Rubyプログラムの構造と実行

1,374 views

Published on

0 Comments
0 Likes
Statistics
Notes
  • Be the first to comment

  • Be the first to like this

No Downloads
Views
Total views
1,374
On SlideShare
0
From Embeds
0
Number of Embeds
4
Actions
Shares
0
Downloads
0
Comments
0
Likes
0
Embeds 0
No embeds

No notes for slide

プログラミング言語 Ruby 2章 Rubyプログラムの構造と実行

  1. 1. CodeFlipper プログラミング言語 Ruby 2章 Ruby プログラムの構造と実行 2010/10/10 mong_lee
  2. 2. CodeFlipper コメントと埋め込みドキュメント ● #(シャープ)の後は、コメント ● 複数行またがるコメントは、コメントの前後行に単独 の#を挿入するのが慣例 ● 「=begin~=end」で囲むとコメントと認識される #コメントですよ #コメントですよ =begin =begin  'VBのHello Worldです  'VBのHello Worldです # #  MessageBox.Show(“Hello  MessageBox.Show(“Hello #今日はパスタ屋にいきます #今日はパスタ屋にいきます World!”) World!”) #何をたのもうかしら? #何をたのもうかしら? =end =end # # コメント 埋め込みドキュメント 2
  3. 3. CodeFlipper ドキュメント用コメント ● モジュール定義の前に、特別な形式のコメントを入れ ることによってAPIドキュメントを組み込める ● rdocツールを使用して、HTMLに整形したりriが表示で きる形式にできる # # # リスト項目 # リスト項目 #rdoc用コメント #rdoc用コメント # *あいうえお # *あいうえお # # # *かきくけこ # *かきくけこ # = 見出し # = 見出し # # # # # などなど # などなど # ==小見出し # ==小見出し # # ドキュメント用コメントの一例 3
  4. 4. CodeFlipper リテラル ● 数値、文字列、正規表現の3種類(3章でやるよ) ● 記号は演算子などで使われる(4章でやるよ) 11 #整数リテラル #整数リテラル ** ** #指数 #指数 1.0 1.0 #浮動小数点リテラル #浮動小数点リテラル == #代入 #代入 'one' 'one' #文字列リテラル #文字列リテラル === === #パターンマッチ #パターンマッチ “two” “two” #文字列リテラル #文字列リテラル && #ビット演算AND #ビット演算AND /three/ /three/ #正規表現リテラル #正規表現リテラル || #ビット演算OR #ビット演算OR リテラル 埋め込みドキュメント 4
  5. 5. CodeFlipper 識別子(1) ● 英数字と_(アンダースコア)から構成される ● 先頭数字は×、アンダースコアは○ ● 先頭大文字は定数扱い(値変更で警告) ● 複数の語からなる識別子はアンダースコアで区切る ● クラスやモジュールの名前の先頭は大文字 ● Ruby内で定義されたASCII文字に含まれない文字は識 別子として使用可能 idx idx temp_array temp_array TeisuDesuyo TeisuDesuyo mong_lee mong_lee _hogehoge _hogehoge H13i32maru H13i32maru Class Hoge Class Hoge nihongoおけ nihongoおけ 識別子の一例 5
  6. 6. CodeFlipper 識別子(2) ● 先頭や末尾が記号の識別子は特別な意味がある $global_variable $global_variable #グローバル変数 #グローバル変数 @instance_variable @instance_variable #インスタンス変数 #インスタンス変数 @@class_variable @@class_variable #クラス変数 #クラス変数 empty? empty? #論理値を返すメソッド #論理値を返すメソッド sort! sort! #破壊的メソッド #破壊的メソッド timeout= timeout= #代入演算子により起動されるメソッド #代入演算子により起動されるメソッド 先頭や末尾に記号の識別子 6
  7. 7. CodeFlipper キーワード ● キーワード≒予約語 ● $、@、@@などをつけると使用できるが、分かりづ らくなるため、使わないほうが無難 ● Kernel、Module、Class、Objectクラスのメソッドも 予約語として扱う方が無難 __LINE__ __LINE__ case case not not then then class class true true false false __FILE__ __FILE__ private private require require load load loop loop gsub! gsub! sleep sleep eval eval exit exit freeze freeze method method nil? nil? to_s to_s 予約語として扱うべきキーワードの一例 7
  8. 8. CodeFlipper 空白 ● スペース、タブ、改行はトークンを区切るために使用 ● 空白の挿入や、削除によりプログラムの意味が変わっ たしまうことがある ● 行末に(バックスラッシュ)で文末と解釈しない total = x + total = x + total = x total = x y y +y +y 2行をひとつの文として解釈 各行をそれぞれ解釈 8
  9. 9. CodeFlipper スペースとメソッド呼び出し ● メソッド呼び出しを囲む()は、一定の条件が満たさ れているときに省略できる ● あいまいな記述は-wオプションで警告を出すようにで きる f(3+2)+1 f(3+2)+1 #(3+2)がfに渡される #(3+2)がfに渡される ff (3+2)+1 (3+2)+1 #(3+2)+1がfに渡される #(3+2)+1がfに渡される スペースによるメソッド呼び出しの違い 9
  10. 10. CodeFlipper 構文構造 ● Rubyの構文の基本単位は式 ● Rubyインタープリタは式を評価して値を生成する ● 式をRubyのキーワードで結合すると、文が作られる while x < 10 do while x < 10 do #この式がtrueである間は #この式がtrueである間は print x print x #この式を実行せよ #この式を実行せよ x=x+1 x=x+1 #この式を実行せよ #この式を実行せよ end end #繰り返しの末尾 #繰り返しの末尾 while文 10
  11. 11. CodeFlipper Rubyのブロック構造 ● Rubyの文のほとんどはネストされたコードブロック を持っている ● 区切りからスペース2個分インデントする習慣 ● 二種類のブロックを持っている(正式なブロックと本 体) 1.upto(10) do |x| 1.upto(10) do |x| module mogemoge module mogemoge print x print x ・・・ ・・・ end end end end 正式なブロック 本体(body) 11
  12. 12. CodeFlipper ファイル構造 ● “shebang” コメント(#!/usr/bin/ruby -wなど)は一行 目に記述する ● “coding” コメント(#coding: utf-8など)は一行目か二 行目に記述する ● __END__トークンのみ含む行がある場合、それ以降 ファイルを処理しない ● requireを用いてライブラリを呼び出すことができる 12
  13. 13. CodeFlipper プログラムのエンコーディング ● Rubyの字句解析ルールはASCIIキャラクタセットの文 字を使って定義されている ● ASCII文字を完全に表現できるエンコーディングであ れば、どんなファイルでも処理できる ● 特定のASCII文字を除けば、任意の文字を含んでよい # coding: SHIFT_JIS # coding: SHIFT_JIS p “はろー、わーるど” p “はろー、わーるど” encodingの指定 13
  14. 14. CodeFlipper プログラムの実行 ● 基本的に先頭から末尾に順次実行される ● プログラムを終了させるような文(exit!)、ファイル の末尾、__END__トークンが書かれた行まで実行 ● mainメソッドは存在しない 14

×