irb
でのインタラクション例(コメント付き)
Microsoft Windows [Version 10.0.17134.706]
(c) 2018 Microsoft Corporation. All rights reserved.
C:\Users\nobu>irb
irb(main):001:0> a=1 # 変数の宣言と代入
=> 1
irb(main):002:0> a # その変数の値を参照する
=> 1
irb(main):003:0> b # 未定義の変数だとこういう応答になる
NameError: undefined local variable or method `b' for main:Object
from (irb):3
from C:/Ruby24-x64/bin/irb.cmd:19:in `<main>'
irb(main):004:0> a=2 #変数の値は後から変更が可能(
=> 2
irb(main):005:0> a # 変更されていますね
=> 2
irb(main):006:0> a="hello" #最初は数値だったが違う型の値も代入できる
=> "hello" #代入された値によって変数の型が自在に変化する
irb(main):007:0> a
=> "hello"
irb(main):008:0> a.class #今は文字列(String)型だとわかる
=> String
irb(main):009:0> a=1 #数値に戻すと、
=> 1
irb(main):010:0> a.class #今は整数(Integer)型
=> Integer
irb(main):011:0> def abc #関数定義の例
irb(main):012:1> 1+2+3
irb(main):013:1> end #def 〜 end で定義する
=> :abc
irb(main):014:0> abc #その関数名を呼び出す
=> 6
irb(main):015:0> abc #単純な関数なので何度呼んでも値は同じ
=> 6
irb(main):016:0> def dbl(x) #引数(として与えた値)によって結果が変わる関数の例
irb(main):017:1> x*2
irb(main):018:1> end #値 x を2倍した数値を返す関数
=> :dbl
irb(main):019:0> dbl(3) #呼んでみる
=> 6
irb(main):020:0> dbl(10) #括弧に包んで渡した値が2倍されて戻ってきている
=> 20
irb(main):021:0> dbl 3 #関数呼び出しの文法のバリエーション 括弧を省略していい
=> 6
irb(main):022:0> dbl3 #このとき間にスペースは必要 スペースがないと1つの単語だと見なされるので
NameError: undefined local variable or method `dbl3' for main:Object
Did you mean? dbl
from (irb):22
from C:/Ruby24-x64/bin/irb.cmd:19:in `<main>'
irb(main):023:0> def plus(x,y) #2引数の関数の例
irb(main):024:1> x+y
irb(main):025:1> end
=> :plus
irb(main):026:0> plus(1,2) #それを呼び出してみる
=> 3
irb(main):027:0> plus 1,2 #括弧を省略してもいいが、引数相互間のかンマは必要
=> 3
irb(main):028:0> plus 1, 2 #余分なスペースが挟まっても大丈夫
=> 3
irb(main):029:0> plus 1 , 2
=> 3
irb(main):030:0> plus 1 2 #しかし、カンマを省略するとエラーになる
SyntaxError: (irb):30: syntax error, unexpected tINTEGER, expecting end-of-input
plus 1 2
^
from C:/Ruby24-x64/bin/irb.cmd:19:in `<main>'
irb(main):031:0> a #さっき変数 a を作ったことを思い出しておいて……
=> 1
irb(main):032:0> def a #さらに 関数 a (同じ名前)を定義してみる
irb(main):033:1> "hello world"
irb(main):034:1> end
=> :a
irb(main):035:0> a # 単に a とだけ呼ぶと、
=> 1 # 変数 aの値が返される
irb(main):036:0> a() #括弧 () を後置すると、
=> "hello world" #関数呼び出しとして扱われる
irb(main):037:0> AAA=1 #変数名は小文字で始まるルールだが、
=> 1
irb(main):038:0> AAA #実際には定義できてしまう(が、避けたほうがいい)
=> 1
irb(main):039:0> Kernel #これはモジュール名として作り付けの変数名
=> Kernel
irb(main):040:0> Kernel.class #モジュールクラスの名前だとわかる
=> Module
irb(main):041:0> Kernel.gets #普通に gets 関数を呼ぶのと同じ動作
faijwefiae
=> "faijwefiae\n"
irb(main):042:0> a=b=c=1 #連鎖的代入の例(代入式が値を持つ、というルールによる)
=> 1
irb(main):043:0> b #上記により、変数 b、
=> 1
irb(main):044:0> c #c、にも同じ値が代入されている
=> 1
irb(main):045:0>
irb(main):046:0*
irb(main):047:0*
irb(main):048:0* puts gets #読み込んで印字する機能(を書く書き方の1つ)
kfhaefgaejh
kfhaefgaejh
=> nil
irb(main):049:0>