第5回の内容に関するirbでの対話例
irb(main):001:0> gets
abc
=> "abc\n" # 改行文字も含まれる
irb(main):002:0> puts "hello"
hello
=> nil # putsはnilを返す
irb(main):003:0> print "hello"
hello=> nil # helloの直後に矢印
irb(main):004:0> print "hello\n"
hello
=> nil # 改行文字が出力される
irb(main):005:0> puts "hello\n"
hello
=> nil # printした場合と同じ結果
irb(main):006:0> puts "hello\n\n"
hello
=> nil # 改行文字2つ分の改行(putsは改行させない)
irb(main):007:0> a="abcde"
=> "abcde"
irb(main):008:0> a.length
=> 5
irb(main):009:0> gets.chop
abcdefg
=> "abcdefg" # chop の使い方
irb(main):010:0> a
=> "abcde"
irb(main):011:0> a.chop
=> "abcd"
irb(main):012:0> a
=> "abcde"
irb(main):013:0> a.chop!
=> "abcd"
irb(main):014:0> a
=> "abcd" # 破壊的メソッド chop! の結果
irb(main):015:0>
C:\Users\NEC-PCuser\Documents\clas > 5-2.rb
abcde
edcba
dahjdfadfkjasldkfjla
aljfkdlsajkfdafdjhad
aefuhaiweuhfiauwehifuhawieufhi
ihfueiwahufihewuaifhuewiahufea
abcdefg
gfedcba
^Z
C:\Users\NEC-PCuser\Documents\clasλ 5-3.rb
abcdef
fedcba
asdfghjk
kjhgfdsa
^Z
irb(main):001:0> "abcde"
=> "abcde"
irb(main):002:0> "abcde".reverse
=> "edcba" # 反転
irb(main):003:0> "abcde".reverse.reverse
=> "abcde" # 2回で元に戻る
irb(main):004:0> "abcde".reverse.chop.reverse.chop
=> "bcd" # 少しややこしいメソッドチェーン
irb(main):007:0> "abcde".upcase
=> "ABCDE"
irb(main):008:0> a="hello"
=> "hello"
irb(main):009:0> a.split
=> ["hello"] # 単語に分割(結果的に1単語)
irb(main):010:0> "hello i am hiraoka".split
=> ["hello", "i", "am", "hiraoka"]
irb(main):011:0> "hello i am hiraoka".split('') # 文字単位で分割
=> ["h", "e", "l", "l", "o", " ", "i", "a", "m", " ", "h", "i", "r", "a", "o", "k", "a"]
irb(main):012:0> a.split(//)
=> ["h", "e", "l", "l", "o"]
irb(main):013:0> a.split(//).class
=> Array # 結果は Arrayクラスであることがわかる
irb(main):014:0> a.split(//).join
=> "hello" # もとの単語に戻る
irb(main):015:0> a.split(//).join(' ')
=> "h e l l o" # それぞれの文字の間にスペースを挟む
irb(main):019:0> a
=> "hello"
irb(main):020:0> a+a+a
=> "hellohellohello"
irb(main):021:0> a*3
=> "hellohellohello"
irb(main):022:0> [a]
=> ["hello"]
irb(main):023:0> [a]*3
=> ["hello", "hello", "hello"]