Ruby覚えた事記録

Rubyを1から学習する中で覚えていった事・使った事をメモしていきます。

随時追加記事

スポンサーリンク

コメント

1行コメント

# 1行コメントはシャープ

複数行コメント

=begin
複数行コメントは
ビギンとエンドで囲む
=end

配列

Array#zip

arrayA = [1,2,3]
arrayB = ["a","b","c"]
arrayA[0,2].zip(arrayB[0,2])

each

配列ループ

array = [1, 2, 3]
array.each{|i|
 p i
}
# => 1
# => 2
# => 3

連想配列(ハッシュ)ループ

array = {'windows' => 1, 'mac' => 2, 'linux' => 3}
array.each{|key, value|
 p key
 p value
}
# => "windows"
# => 1
# => "mac"
# => 2
# => "linux"
# => 3

map

インデックスループ

(0...dates.length).map{|i} dates[i]}
# => [["1993", "2", "24"], ["2014", "1", "1"]]

文字列操作

結合

r = "test"
p r + "-ok" # => "test-ok"
p r # => "test"

破壊的結合

r = "test"
p r << "-ok" # => "test-ok"
p r # => "test-ok"

部分文字列

r = "test"
p r[1] # => "e"
p r[0,2] # => "te"
p r[1..2] # => "es"

文字列長

r = "test"
p r.length # => 4

フォーマット

format("文字は %s 数字は %d", "abc", 123)
# => "文字は abc 数字は 123"

文字列カウント

"test".count("t")
# => 1

先頭・末尾の空白除去

s = " test "
s.strip
# => "test"

行分割

s = "te\nst"

s.lines.to_a         # to_array
# => ["te\n", "st"]

s.lines.map(&:chomp)
# => ["te", "st"]

s.split("\n")
# => ["te", "st"]

a = []; s.each_line{|l| a << l}; a
# => ["te\n", "st"]

文字分割(スペース区切り)

s = " t e s t "
s.split
# => ["t", "e", "s", "t"]

文字分割(1文字ずつ)

"test".chars.to_a
# => ["t", "e", "s", "t"]

HTMLエスケープ

require 'cgi'
CGI.unescapeHTML "&lt;br&gt;"
# => "<br>"

改行操作

改行削除

"test\n".chomp
# => "test

ファイル

開く

html = open("test.html", &:read)

日時

Time.local(2016)
# => 2016-01-01 00:00:00 +0000
Time.local "2016"
# => 2016-01-01 00:00:00 +0000
Time.local 2016
# => 2016-01-01 00:00:00 +0000
Time.local 2016, 11, 27
# => 2016-11-27 00:00:00 +0000

実行

$ ruby test.rb

irb(Interactive Ruby)

rubyの実行も出来る

$ irb test.rb

対話形式でも出来る

$ irb
irb(main):001:0> 1+2
=> 3

クラス

class Test
  def test_method
    puts "test"
  end
end

ruby参考プログラムなどで出て来るklassについて

classが予約語だから

http://shirusu-ni-tarazu.hatenablog.jp/entry/2014/05/08/001504