SlideShare a Scribd company logo
第4回 Ruby輪講

   浦田有希
式と演算子
•   4.1   リテラルとキーワードリテラル
•   4.2   変数参照
•   4.3   定数参照
•   4.4   メソッド呼び出し
•   4.5   代入
•   4.6   演算子
式とはRubyインタプリタが評価して値を生成できるような
 Ruby
コードの塊のことである。

(式の例)
2                 #数値リテラル
x                 #ローカル変数参照
Math.sqrt(2)      #メソッド呼び出し
x=Math.sqrt(2)   #代入
x*x               #*演算子による乗算

式は代入演算子や算乗演算子などの演算子(operators)で結
 合
してより大きな式にすることができる。
多くのプログラミング言語は、低水準の式と条件分岐や繰
 り返
リテラルとキーワードリテラル
• リテラルとはプログラムのソースコードに直接埋め
  込むことのできる値のこと(1.0、”hello world”、[]
  など)

• 数値などの多くのリテラルは、それ以上単純な式に
  分割できない。しかし、配列、ハッシュリテラルや
  展開式を含むダブルクォート文字列などは、内部に
  さらに式を含んでおり、このような性質を満たさな
  い。

• Rubyキーワードの中には、式になっており、キー
  ワードリテラル、または特殊な形式の変数参照と考
  えられるものがある。
nil
NilClassクラスのシングルトンインスタンスでnilを表すオブ
   ジェクトと
評価される

true
NilClassクラスのシングルトンインスタンスで論理値trueを表
   すオブ
ジェクトとして評価される

false
NilClassクラスのシングルトンインスタンスで論理値trueを表
   すオブ
ジェクトとして評価される

self
__FILE__
Rubyインタプリタが実行しているファイルの名前の文字列に
  評価さ
れる。エラーメッセージで役に立つ


__LINE__
現在時実行している行が__FILE__内の何行目になるのかを示
 す整
数に評価される


__ENCODING__
__FILE__のエンコーディングを指定するEncodingオブジェク
  トに評価
される(Ruby1.9のみ)
変数参照
変数とは、単純に値に付けられた名前である。変数を作成す
 るの
は代入式で、このときに値も代入される。代入式の左辺以外
 の場
所で変数名が現れた場合、それは式を参照しており、変数の
 値に
評価される。

one=1.0   #これは代入式
one       #これは変数参照式、1.0と評価される

変数は、式の中で出現する際にはいつでも、名前空間で修飾
 さ
れない単純な形式である。式の中に.や::が含まれている場合
末初期化変数
一般に、変数を式で使うときには、あらかじめ変数に値を代
 入し、
初期化しておくべきである。しかしRubyでは、特定の条件の
 もとで
は初期化されていない変数を使うことができる。条件は変数
 の種
類によって異なる。

・クラス変数
クラス変数は、使う前に必ず値を代入しておかなければならない。
値が代入されていないクラスの変数が参照されると、RubyはNameErrorを起こ
  す。

・インスタンス変数
初期化されていないインスタンス変数を参照すると、Rubyはnilを返す。-wオプ
  ション
・グローバル変数
インスタンス変数と同じ扱い。nilと評価されるが、-wオプションを指
   定して
Rubyを起動すると、警告メッセージが表示される。


・ローカル変数
一般的には、初期化されていないローカル変数を使おうとするとエ
 ラーが起
きる。しかし、Rubyインタプリタが変数に対する代入式を検出すると、
 その変
数は存在するようになる。作られたが代入されていない変数には、デ
 フォル
トの値としてnilが与えられる。

a=0.0 if false   #この代入は絶対実行されない
print a          #nilを表示:変数は存在するが代入されていない
print b          #NameError:bという名前の変数、メソッドは存在し
   ない
定数参照
・ほとんどの定数は、全部大文字でアンダースコアを使って区切る
 LIKE_THISのような形式になっている。

・定数はプログラム中のあらゆる位置からアクセスできる。しかし、
 定数
  はクラスとモジュールの名前空間に定義することもでき、その場
  合は可
  視性は定義されたクラスやモジュールによって制限される。

・定数参照は、指定された定数の値に評価される式である。もっと
 も単純
 な定数参照は定数名だけから構成される。

CM_PER_INCH = 2.54   #定数を定義する
CM_PER_INCH          #定数参照。2.54と定義される
定数参照はより複雑な式の場合、定数が定義されているクラス、モ
 ジュールと
定数名を区切るために::が使われる。::の左辺はクラス、モジュールオブ
 ジェク
トと評価される任意の式、右辺はそのクラスやモジュールで定義されて
 いる定
数の名前である。たとえば次の通り

Conversions::CM_PER_INCH    #Conversionモジュールで定義されている定
   数
modules[0]::NAME             #配列要素によって定義されている定数

モジュールはネストできる。つまり、定数は次のようにネストされた名
 前空間の
中で定義できる。

Conversions::Area::HECTARES_PER_ACRE

::の左辺は省略できる。この場合、定数はグローバルスコープで探索さ
れる。
メソッド呼び出し
メソッド呼び出し式は4つの部分から構成される。

・メソッドの呼び出し元のオブジェクトと評価される任意の式。この式の
 後ろには、
 メソッド名とオブジェクト名を区切るための.または::が続く。式と演算
 子は省略
 可能で、省略された場合selfのメソッドが呼び出される。

・呼び出されるメソッドの名前。メソッド呼び出しの中で必須なのはこの
 部分だけ。

・メソッドに渡される引数値。引数リストはかっこで囲むこともできるが、
 かっこは
 多くの場合省略可能。引数の数と型はメソッド定義によって決まり、引
 数が複
 数ある場合には、1つ1つをカンマで区切る。引数を必要としないメ
• 中かっこかdo/endペアで囲まれた省略可能なコードブロック。メ
  ソッドは、yieldキーワードを使ってこのコードを実行できる。メ
  ソッド呼び出しに付随するブロックについては、5.3と5.4で詳しく説
  明する。

puts “hello world”   #1個の文字列引数を与えてselfの”puts”を起動
Math.sqrt(2)         # 1個の引数を与えてMathオブジェクトの”sqrt”を
   起動
message,.length      #引数なしでmessageオブジェクト”length”のを起動
a.each{|x| p x}      #付随ブロックを指定してaオブジェクトの”each”
   を起動
代入
Rubyには、代入式の形式が3種類ある。

・単純代入
1個の左辺値、=演算子、1個の右辺値を並べたもの
x=1    #左辺値xに1を代入
x=y=0  #xとyに0を代入

・自己代入
変数の現在の値に何らかの演算を適用し、その結果によって変数の値
  を更
新する式。
x+=1   #左辺値xに値x+1を代入する

・多重代入
左辺値か右辺値が複数ある代入式
x,y,z = 1,2,3 #xに1、yに2、zに3を代入する
代入と副作用
代入式は、代入によって変数に値がセットされ、それによりプログラムの
 状
態が影響を受ける。この影響のことを代入の副作用という。また、プログ
 ラム
に影響与えない式を冪等といい、これは式を繰り返し評価しても毎回同じ
 答
えが返ってくるという意味である。

副作用のない式(冪等)
x+y
Math.sqrt(2)

副作用のある式
x=1     #xを使うほかの式の値に影響を与える
x + = 1 #評価されるたびに異なる値を返す

Math.sqrtのようなメソッドは冪等であり、何度呼び出しても副作用がない。
また、代入式は冪等ではない。
変数への代入
変数は代入されたときから存在するようになるため、Rubyには変数を
 明示的
に宣言するための構文はない。また、ローカル変数とメソッド名は区
 別でき
ない。そこで、のxような単純な式は、xという名前のローカル変数を
 参照して
いるのかもしれないし、selfのxというメソッドを参照しているのかも
 しれない。
このあいまいさを解決するために、Rubyは識別子に対する代入をすで
 に検
出していれば、その識別子をローカル変数として扱う。次のコードは
 これを示
している。
class Ambiguos
    def x; 1; end #必ず1を返すというという名前のメソッド

  def test
       puts x     #まだ変数を検出していないので、上のメソッドを参照して1
  を出力


         # ”if else”となっているので、下の行は絶対に字実行されないが
         #パーサーはこれを検出してメソッドの末尾まではxを変数として扱う
         x = 0 if false

         puts x   #xは変数だが代入されていないのでnilを返す

         x=2      #この代入は評価される
         puts x   #そこでこの行は2を出力する
   end
end
定数への代入
定数の代入には特別なルールがある。
・すでに存在する定数に代入するとRubyは警告を発行する。しかし、
 代入自
 体は実行するので、定数の値は実際には一定ではない。
・定数への代入はメソッド本体の中では認められない

定数は、Rubyインタープリタが実際に代入式を実行するまで作成され
 ない。
次のような評価されない式では定数は作成されない。


N = 100 if else

そのため、定数は存在するなら何らかの値を代入されていることにな
 る。定
数の値がnilになるのは、代入された値がnilのときだけである。
属性と配列要素への代入
Rubyでは、属性や配列要素への代入は、実際にはメソッド呼び出しの略記
   法で
ある。オブジェクトoがm=というメソッドを持っているものとする。メ
   ソッド名の末尾
は等号になっているのである。このときo.mは、代入式の左辺として使え
   る。さら
に、値がv代入されたとする。

o.m = v

Rubyインタープリタは、この代入を次のようなメソッド呼び出しに変換す
   る。

o.m = (v)   #かっこを取り除いてスペースを追加すれば代入のように見
   える!

つまりこのコードは、メソッドm=に値vを渡している。m=のようなメソッ
 ドには、mと
いうメソッドが付随していることが多く、mは単純に最後にm=に渡された
配列要素への値の代入も、メソッド呼び出しによって行われる。オブ
  ジェクトo
が[]=という名前のメソッドを定義している場合、o[x]=yという式は、実
  際には
次のように実行される。

o.[] = (x,y)

オブジェクトが3個の引数を取る[]=メソッドを定義している場合、角
 かっこの
間に2個の添字を入れることができる。次の2つの式は同じ意味である。

o[x,y] = z
o.[] = (x,y,z)
自己代入
自己代入は、他の演算子と代入を組み合わせた形の代入である。
x+=1

+=は、実際にはRubyの演算子ではなく、上の式は次の式の略記法にすぎな
  い

x=x+1

自己代入が使えるのは、左側に単一の左辺、右側に単一の値が置かれてい
 る
場合だけ。左辺が定数の場合は、警告メッセージが出るので使わないよう
 にした
方がよい。しかし自己代入は、左辺が属性のときにも使える。

o.m + = 1
o.m = (o.m()+1)

左辺は配列属性でも構わない。
o[x] - = 2
多重代入
多重代入は左辺か右辺またはその両方が複数ある代入式のことである。
 左
辺と右辺の前にはプレフィックスとして*を入れることができる。


・左辺と右辺が同数
もっとも単純な代入式は左辺と右辺の数が同じ場合である。

x , y , z = 1 , 2 , 3 # x=1 , y=2 , z=3

これらの代入は、逐次的ではなく並行して実行される。
次の2行は同じ意味にならない。

x,y=y,x             #並行:2つの値を交換
x=y;y=x             #逐次的:両方の変数が同じ値になる
・1個の左辺、複数の右辺
左辺が1個で、右辺が複数ある場合、Rubyは右辺を保持する配列を作り、
    そ
の配列を左辺に代入する。
x=1,2,3        # x=[1,2,3]
複数の右辺が1つの配列に結合されるのを防ぎたければ、左辺の後ろに
    カ
ンマを付ける。
x, = 1 , 2 , 3 # x=1 他の値は捨てられる


・複数の左辺、1個の配列の右辺
左辺が複数あるが右辺は1つしかない場合、Rubyはその右辺を代入す
    べき
値のリストに展開しようとする。
x , y , z = [ 1 , 2 , 3] # x,y,z=1,2,3と同じ
末尾にカンマを使えば、通常の代入式を変換し、右辺の配列を自動的
 に展
開して多重代入することができる。
・左辺と右辺の数が異なるとき
左辺>右辺で、*が使われていない場合には、最初の右辺が最初の左辺、
    2
番目の右辺が2番目の左辺に代入され、右辺がなくなるまで同様のこと
    が続
けられる。余った左辺には元の値を上書きする形でnilが代入される。
x,y,z=1,2        # x=1, y=2, z=nil
右辺>左辺で、*が使われていない場合には、ここの左辺に順番に値が
    代
入され、余った右辺は捨てられる。
x , y =1 , 2 , 3 # x=1, y=2 3は代入されない


・多重代入における*
右辺の前に*が付けられていれば、それはその値が配列でありその個々
    の
要素を右辺にすべきことを表している。
x , y , z = 1 , *[2,3] # x,y,z=1,2,3と同じ
左辺の前にアスタリスクが付けられている場合には、余っているすべ
 ての右
辺を配列にまとめて左辺に代入するという意味になる。左辺に代入さ
    れる値
は必ず配列であって、要素は0個以上の適切な個数になる。
x , *y = 1, 2, 3 # x=1, y=[2,3]
x , *y = 1, 2    # x=1, y=[2]
x , *y = 1       # x=1, y=[ ]

Ruby1.9では多重代入の左辺に付けられる*の数が1個だけなのは変わら
    な
いが、リスト内の任意の位置に配置できる。
#Ruby1.9のみ
*x , y = 1, 2, 3 # x=[1,2], y=3
*x , y = 1, 2    # x=[1], y=2
*x , y = 1       # x=[], y=1

*は、多重代入式の両辺に含まれていてかまわない。
・多重代入の中のかっこ
多重代入の左辺ではかっこを「サブ代入」に使える。
x, (y, z) = a, b
これは、実質的には次に示す代入の同時実行である。
x=a
y, z = b
しかし、第二の代入自体も多重実行になっていることに注意しなけれ
    ばなら
い。これが機能するためには,bは配列やEnumeratorなどの展開可能なオ
    ブ
ジェクトでなければなれない。
左辺のかっこが右辺のネストされた配列を1レベルずつ展開する
x, y, z =1, [2,3] #かっこなし:x=1,y=[2,3],z=nil
x, (y, z) =1, [2,3] #かっこつき:x=1, y=2, z=3

a, b, c, d =[1, [2, [3, 4]]] #かっこなし:a=1,b=[2,[3,4]],c=nil
a, (b, (c, d))=[1, [2, [3, 4]]] #かっこつき:a=1,b=2,c=3,d=4
・多重代入の値
多重代入式の戻り値は、右辺の配列(*による展開を適用した後のもの)
 になる。


・多重代入とメソッド呼び出し
多重代入に前にメソッド名がある場合、Rubyインタープリタは、左辺と右
 辺のセ
パレータではなく、メソッド引数のセパレータとしてカンマを解釈する。
 多重代入
の戻り値をテストしたいので、次のようなコードで出力しようとしたとす
   る。
puts x, y =1, 2

これでは、Rubyはx,(y=1),2の3個の引数を指定してputsメソッドを呼び出そ
   うとし
たものと解釈するため思った通りに動かない。そこで、多重代入を1つの
   グルー
プにするために、かっこの中に入れたとする。
puts (x, y =1, 2)

More Related Content

What's hot

Ruby 3の型推論やってます
Ruby 3の型推論やってますRuby 3の型推論やってます
Ruby 3の型推論やってます
mametter
 
Python勉強会2-数値と文字列
Python勉強会2-数値と文字列Python勉強会2-数値と文字列
Python勉強会2-数値と文字列
理 小林
 
Essential Scala 第5章 シーケンス処理
Essential Scala 第5章 シーケンス処理Essential Scala 第5章 シーケンス処理
Essential Scala 第5章 シーケンス処理
Takuya Tsuchida
 
BOF1-Scala02.pdf
BOF1-Scala02.pdfBOF1-Scala02.pdf
BOF1-Scala02.pdfHiroshi Ono
 
みんなで Swift 復習会 GO! in 岩手 – 9th′
みんなで Swift 復習会 GO! in 岩手 – 9th′みんなで Swift 復習会 GO! in 岩手 – 9th′
みんなで Swift 復習会 GO! in 岩手 – 9th′
Tomohiro Kumagai
 
Xtext&Xtend documents
Xtext&Xtend documentsXtext&Xtend documents
Xtext&Xtend documents
Shintaro Hosoai
 
Swift らしい表現を目指そう #eventdots
Swift らしい表現を目指そう #eventdotsSwift らしい表現を目指そう #eventdots
Swift らしい表現を目指そう #eventdots
Tomohiro Kumagai
 
たのしい高階関数
たのしい高階関数たのしい高階関数
たのしい高階関数
Shinichi Kozake
 
Ruby4章後半(演算子)
Ruby4章後半(演算子)Ruby4章後半(演算子)
Ruby4章後半(演算子)Hiroshi Isimaru
 
PHP array_uintersectに潜む罠
PHP array_uintersectに潜む罠PHP array_uintersectに潜む罠
PHP array_uintersectに潜む罠
Takaaki Hirano
 
値付き Enum 入門、そして伝説へ #yhios #cocoa kansai
値付き Enum 入門、そして伝説へ #yhios #cocoa kansai値付き Enum 入門、そして伝説へ #yhios #cocoa kansai
値付き Enum 入門、そして伝説へ #yhios #cocoa kansai
Tomohiro Kumagai
 
初心者講習会資料(Osaka.r#6)
初心者講習会資料(Osaka.r#6)初心者講習会資料(Osaka.r#6)
初心者講習会資料(Osaka.r#6)Masahiro Hayashi
 
MP in Scala
MP in ScalaMP in Scala
MP in Scala
Kent Ohashi
 
Java scriptの基礎
Java scriptの基礎Java scriptの基礎
Java scriptの基礎
ManabuYoneyama
 
MP in Haskell
MP in HaskellMP in Haskell
MP in Haskell
Kent Ohashi
 
関数プログラミング入門
関数プログラミング入門関数プログラミング入門
関数プログラミング入門
Hideyuki Tanaka
 
Java8から始める関数型プログラミング
Java8から始める関数型プログラミングJava8から始める関数型プログラミング
Java8から始める関数型プログラミング
stylefreeslide
 
Swift 3 で新しくなったところ - 表面から見えにくいところを中心に紹介 #ISAOcorp
Swift 3 で新しくなったところ - 表面から見えにくいところを中心に紹介 #ISAOcorpSwift 3 で新しくなったところ - 表面から見えにくいところを中心に紹介 #ISAOcorp
Swift 3 で新しくなったところ - 表面から見えにくいところを中心に紹介 #ISAOcorp
Tomohiro Kumagai
 
Python勉強会4-制御構文とパッケージ
Python勉強会4-制御構文とパッケージPython勉強会4-制御構文とパッケージ
Python勉強会4-制御構文とパッケージ
理 小林
 

What's hot (20)

Ruby 3の型推論やってます
Ruby 3の型推論やってますRuby 3の型推論やってます
Ruby 3の型推論やってます
 
Python勉強会2-数値と文字列
Python勉強会2-数値と文字列Python勉強会2-数値と文字列
Python勉強会2-数値と文字列
 
Essential Scala 第5章 シーケンス処理
Essential Scala 第5章 シーケンス処理Essential Scala 第5章 シーケンス処理
Essential Scala 第5章 シーケンス処理
 
BOF1-Scala02.pdf
BOF1-Scala02.pdfBOF1-Scala02.pdf
BOF1-Scala02.pdf
 
みんなで Swift 復習会 GO! in 岩手 – 9th′
みんなで Swift 復習会 GO! in 岩手 – 9th′みんなで Swift 復習会 GO! in 岩手 – 9th′
みんなで Swift 復習会 GO! in 岩手 – 9th′
 
Xtext&Xtend documents
Xtext&Xtend documentsXtext&Xtend documents
Xtext&Xtend documents
 
Swift らしい表現を目指そう #eventdots
Swift らしい表現を目指そう #eventdotsSwift らしい表現を目指そう #eventdots
Swift らしい表現を目指そう #eventdots
 
たのしい高階関数
たのしい高階関数たのしい高階関数
たのしい高階関数
 
Ruby4章後半(演算子)
Ruby4章後半(演算子)Ruby4章後半(演算子)
Ruby4章後半(演算子)
 
PHP array_uintersectに潜む罠
PHP array_uintersectに潜む罠PHP array_uintersectに潜む罠
PHP array_uintersectに潜む罠
 
値付き Enum 入門、そして伝説へ #yhios #cocoa kansai
値付き Enum 入門、そして伝説へ #yhios #cocoa kansai値付き Enum 入門、そして伝説へ #yhios #cocoa kansai
値付き Enum 入門、そして伝説へ #yhios #cocoa kansai
 
初心者講習会資料(Osaka.r#6)
初心者講習会資料(Osaka.r#6)初心者講習会資料(Osaka.r#6)
初心者講習会資料(Osaka.r#6)
 
MP in Scala
MP in ScalaMP in Scala
MP in Scala
 
Pythonintro
PythonintroPythonintro
Pythonintro
 
Java scriptの基礎
Java scriptの基礎Java scriptの基礎
Java scriptの基礎
 
MP in Haskell
MP in HaskellMP in Haskell
MP in Haskell
 
関数プログラミング入門
関数プログラミング入門関数プログラミング入門
関数プログラミング入門
 
Java8から始める関数型プログラミング
Java8から始める関数型プログラミングJava8から始める関数型プログラミング
Java8から始める関数型プログラミング
 
Swift 3 で新しくなったところ - 表面から見えにくいところを中心に紹介 #ISAOcorp
Swift 3 で新しくなったところ - 表面から見えにくいところを中心に紹介 #ISAOcorpSwift 3 で新しくなったところ - 表面から見えにくいところを中心に紹介 #ISAOcorp
Swift 3 で新しくなったところ - 表面から見えにくいところを中心に紹介 #ISAOcorp
 
Python勉強会4-制御構文とパッケージ
Python勉強会4-制御構文とパッケージPython勉強会4-制御構文とパッケージ
Python勉強会4-制御構文とパッケージ
 

Viewers also liked

Cloud connect winter 2012
Cloud connect   winter 2012Cloud connect   winter 2012
Cloud connect winter 2012
Mark Casey
 
Personal learning project
Personal learning projectPersonal learning project
Personal learning project
kylamw
 
Fidel Castro
Fidel CastroFidel Castro
Fidel Castro
Welshkiwi2
 
Seventy lb-uomo pe12
Seventy lb-uomo pe12Seventy lb-uomo pe12
Seventy lb-uomo pe12
cadamosto1970
 
Seventy lb-donna pe12
Seventy lb-donna pe12Seventy lb-donna pe12
Seventy lb-donna pe12
cadamosto1970
 
Design is-in-the-details-wv2008-1212104429152986-8
Design is-in-the-details-wv2008-1212104429152986-8Design is-in-the-details-wv2008-1212104429152986-8
Design is-in-the-details-wv2008-1212104429152986-8
Chantana Insra
 
Zonanetworkitalia 140423064022-phpapp02
Zonanetworkitalia 140423064022-phpapp02Zonanetworkitalia 140423064022-phpapp02
Zonanetworkitalia 140423064022-phpapp02Mario Aparicio
 
オブジェクト指向スクリプト言語 Ruby
オブジェクト指向スクリプト言語 Rubyオブジェクト指向スクリプト言語 Ruby
オブジェクト指向スクリプト言語 Ruby
Kitajiro Kitayama
 
Presentation 11 06-2013 changes
Presentation 11 06-2013 changesPresentation 11 06-2013 changes
Presentation 11 06-2013 changes
Ghazanfar Amin
 
Couleurs du ciel11
Couleurs du ciel11Couleurs du ciel11
Couleurs du ciel11Stef Leporq
 
CIO Perpsectives
CIO PerpsectivesCIO Perpsectives
CIO Perpsectives
Mark Casey
 
苫小牧高専 ソフトウェアテクノロジー部 Rubyで遊ぼう 1
苫小牧高専 ソフトウェアテクノロジー部 Rubyで遊ぼう 1苫小牧高専 ソフトウェアテクノロジー部 Rubyで遊ぼう 1
苫小牧高専 ソフトウェアテクノロジー部 Rubyで遊ぼう 1
Takuya Mukohira
 
Corvace retroazione nella VIA
Corvace retroazione nella VIACorvace retroazione nella VIA
Corvace retroazione nella VIA
Francesco Corvace
 
#schf13 viaggi del barbaro:content marketing
#schf13 viaggi del barbaro:content marketing#schf13 viaggi del barbaro:content marketing
#schf13 viaggi del barbaro:content marketing
Beatrice Nolli
 
Improving Application Performance in the Age of SaaS, Mobility and Hybrid IT
 Improving Application Performance in the Age of SaaS, Mobility and Hybrid IT Improving Application Performance in the Age of SaaS, Mobility and Hybrid IT
Improving Application Performance in the Age of SaaS, Mobility and Hybrid IT
Mark Casey
 
Social Media in Italia e opportunità digitali alla COM:UNI:CARE Live Conferen...
Social Media in Italia e opportunità digitali alla COM:UNI:CARE Live Conferen...Social Media in Italia e opportunità digitali alla COM:UNI:CARE Live Conferen...
Social Media in Italia e opportunità digitali alla COM:UNI:CARE Live Conferen...
Beatrice Nolli
 
SSEM final project
SSEM final projectSSEM final project
SSEM final project
Ievgeniia Iakovleva
 
Ievgeniia iakovleva tesla-motors-final project
Ievgeniia iakovleva tesla-motors-final projectIevgeniia iakovleva tesla-motors-final project
Ievgeniia iakovleva tesla-motors-final project
Ievgeniia Iakovleva
 

Viewers also liked (20)

Cloud connect winter 2012
Cloud connect   winter 2012Cloud connect   winter 2012
Cloud connect winter 2012
 
Personal learning project
Personal learning projectPersonal learning project
Personal learning project
 
Fidel Castro
Fidel CastroFidel Castro
Fidel Castro
 
Seventy lb-uomo pe12
Seventy lb-uomo pe12Seventy lb-uomo pe12
Seventy lb-uomo pe12
 
Seventy lb-donna pe12
Seventy lb-donna pe12Seventy lb-donna pe12
Seventy lb-donna pe12
 
Design is-in-the-details-wv2008-1212104429152986-8
Design is-in-the-details-wv2008-1212104429152986-8Design is-in-the-details-wv2008-1212104429152986-8
Design is-in-the-details-wv2008-1212104429152986-8
 
Zonanetworkitalia 140423064022-phpapp02
Zonanetworkitalia 140423064022-phpapp02Zonanetworkitalia 140423064022-phpapp02
Zonanetworkitalia 140423064022-phpapp02
 
オブジェクト指向スクリプト言語 Ruby
オブジェクト指向スクリプト言語 Rubyオブジェクト指向スクリプト言語 Ruby
オブジェクト指向スクリプト言語 Ruby
 
Presentation 11 06-2013 changes
Presentation 11 06-2013 changesPresentation 11 06-2013 changes
Presentation 11 06-2013 changes
 
Couleurs du ciel11
Couleurs du ciel11Couleurs du ciel11
Couleurs du ciel11
 
CIO Perpsectives
CIO PerpsectivesCIO Perpsectives
CIO Perpsectives
 
苫小牧高専 ソフトウェアテクノロジー部 Rubyで遊ぼう 1
苫小牧高専 ソフトウェアテクノロジー部 Rubyで遊ぼう 1苫小牧高専 ソフトウェアテクノロジー部 Rubyで遊ぼう 1
苫小牧高専 ソフトウェアテクノロジー部 Rubyで遊ぼう 1
 
Corvace retroazione nella VIA
Corvace retroazione nella VIACorvace retroazione nella VIA
Corvace retroazione nella VIA
 
Durablement votre
Durablement votreDurablement votre
Durablement votre
 
#schf13 viaggi del barbaro:content marketing
#schf13 viaggi del barbaro:content marketing#schf13 viaggi del barbaro:content marketing
#schf13 viaggi del barbaro:content marketing
 
Improving Application Performance in the Age of SaaS, Mobility and Hybrid IT
 Improving Application Performance in the Age of SaaS, Mobility and Hybrid IT Improving Application Performance in the Age of SaaS, Mobility and Hybrid IT
Improving Application Performance in the Age of SaaS, Mobility and Hybrid IT
 
Social Media in Italia e opportunità digitali alla COM:UNI:CARE Live Conferen...
Social Media in Italia e opportunità digitali alla COM:UNI:CARE Live Conferen...Social Media in Italia e opportunità digitali alla COM:UNI:CARE Live Conferen...
Social Media in Italia e opportunità digitali alla COM:UNI:CARE Live Conferen...
 
SSEM final project
SSEM final projectSSEM final project
SSEM final project
 
Da social media-promo-program
Da social media-promo-programDa social media-promo-program
Da social media-promo-program
 
Ievgeniia iakovleva tesla-motors-final project
Ievgeniia iakovleva tesla-motors-final projectIevgeniia iakovleva tesla-motors-final project
Ievgeniia iakovleva tesla-motors-final project
 

Similar to Ruby4章

Ruby講座第二回
Ruby講座第二回Ruby講座第二回
Ruby講座第二回mitsunaga
 
【C++BUILDER STARTER チュートリアルシリーズ】シーズン2 C++Builderの部 第2回 ‟変数と型„
【C++BUILDER STARTER チュートリアルシリーズ】シーズン2 C++Builderの部 第2回 ‟変数と型„【C++BUILDER STARTER チュートリアルシリーズ】シーズン2 C++Builderの部 第2回 ‟変数と型„
【C++BUILDER STARTER チュートリアルシリーズ】シーズン2 C++Builderの部 第2回 ‟変数と型„
和弘 井之上
 
【DELPHI / C++BUILDER STARTER チュートリアルシリーズ】 シーズン2 Delphi の部 第4回 「Function と Pro...
【DELPHI / C++BUILDER STARTER チュートリアルシリーズ】 シーズン2 Delphi の部 第4回 「Function と Pro...【DELPHI / C++BUILDER STARTER チュートリアルシリーズ】 シーズン2 Delphi の部 第4回 「Function と Pro...
【DELPHI / C++BUILDER STARTER チュートリアルシリーズ】 シーズン2 Delphi の部 第4回 「Function と Pro...
Kaz Aiso
 
Equality in Scala (ScalaMatsuri 2020)
Equality in Scala (ScalaMatsuri 2020)Equality in Scala (ScalaMatsuri 2020)
Equality in Scala (ScalaMatsuri 2020)
Eugene Yokota
 
【DELPHI / C++BUILDER STARTER チュートリアルシリーズ】 シーズン2 Delphi の部 第5回 「配列 と レコード 」
【DELPHI / C++BUILDER STARTER チュートリアルシリーズ】 シーズン2 Delphi の部 第5回 「配列 と レコード 」【DELPHI / C++BUILDER STARTER チュートリアルシリーズ】 シーズン2 Delphi の部 第5回 「配列 と レコード 」
【DELPHI / C++BUILDER STARTER チュートリアルシリーズ】 シーズン2 Delphi の部 第5回 「配列 と レコード 」
Kaz Aiso
 
プログラミング言語 Ruby 2章 Rubyプログラムの構造と実行
プログラミング言語 Ruby 2章 Rubyプログラムの構造と実行プログラミング言語 Ruby 2章 Rubyプログラムの構造と実行
プログラミング言語 Ruby 2章 Rubyプログラムの構造と実行monglee
 
クラスのインスタンス変数について
クラスのインスタンス変数についてクラスのインスタンス変数について
クラスのインスタンス変数について
Tomoya Kawanishi
 
TypeScript & 関数型講座 第3回 関数型入門
TypeScript & 関数型講座 第3回 関数型入門TypeScript & 関数型講座 第3回 関数型入門
TypeScript & 関数型講座 第3回 関数型入門
gypsygypsy
 
Ruby on Rails 入門
Ruby on Rails 入門Ruby on Rails 入門
Ruby on Rails 入門
Yasuko Ohba
 

Similar to Ruby4章 (9)

Ruby講座第二回
Ruby講座第二回Ruby講座第二回
Ruby講座第二回
 
【C++BUILDER STARTER チュートリアルシリーズ】シーズン2 C++Builderの部 第2回 ‟変数と型„
【C++BUILDER STARTER チュートリアルシリーズ】シーズン2 C++Builderの部 第2回 ‟変数と型„【C++BUILDER STARTER チュートリアルシリーズ】シーズン2 C++Builderの部 第2回 ‟変数と型„
【C++BUILDER STARTER チュートリアルシリーズ】シーズン2 C++Builderの部 第2回 ‟変数と型„
 
【DELPHI / C++BUILDER STARTER チュートリアルシリーズ】 シーズン2 Delphi の部 第4回 「Function と Pro...
【DELPHI / C++BUILDER STARTER チュートリアルシリーズ】 シーズン2 Delphi の部 第4回 「Function と Pro...【DELPHI / C++BUILDER STARTER チュートリアルシリーズ】 シーズン2 Delphi の部 第4回 「Function と Pro...
【DELPHI / C++BUILDER STARTER チュートリアルシリーズ】 シーズン2 Delphi の部 第4回 「Function と Pro...
 
Equality in Scala (ScalaMatsuri 2020)
Equality in Scala (ScalaMatsuri 2020)Equality in Scala (ScalaMatsuri 2020)
Equality in Scala (ScalaMatsuri 2020)
 
【DELPHI / C++BUILDER STARTER チュートリアルシリーズ】 シーズン2 Delphi の部 第5回 「配列 と レコード 」
【DELPHI / C++BUILDER STARTER チュートリアルシリーズ】 シーズン2 Delphi の部 第5回 「配列 と レコード 」【DELPHI / C++BUILDER STARTER チュートリアルシリーズ】 シーズン2 Delphi の部 第5回 「配列 と レコード 」
【DELPHI / C++BUILDER STARTER チュートリアルシリーズ】 シーズン2 Delphi の部 第5回 「配列 と レコード 」
 
プログラミング言語 Ruby 2章 Rubyプログラムの構造と実行
プログラミング言語 Ruby 2章 Rubyプログラムの構造と実行プログラミング言語 Ruby 2章 Rubyプログラムの構造と実行
プログラミング言語 Ruby 2章 Rubyプログラムの構造と実行
 
クラスのインスタンス変数について
クラスのインスタンス変数についてクラスのインスタンス変数について
クラスのインスタンス変数について
 
TypeScript & 関数型講座 第3回 関数型入門
TypeScript & 関数型講座 第3回 関数型入門TypeScript & 関数型講座 第3回 関数型入門
TypeScript & 関数型講座 第3回 関数型入門
 
Ruby on Rails 入門
Ruby on Rails 入門Ruby on Rails 入門
Ruby on Rails 入門
 

Ruby4章