Open26

Ruby メソッド

Ippei ShimizuIppei Shimizu

to_aメソッド

オブジェクトを配列に変換する。

範囲オブジェクトでの使用例

範囲オブジェクトを配列に変換する場合、to_aメソッドの範囲内の全ての要素を含む配列を生成します。

range = 1..5
array = range.to_a
puts array.inspect
# 出力: [1, 2, 3, 4, 5]

列挙可能オブジェクトでの使用例

ハッシュなどでも配列に変換することができます。

hash = {a: 1, b: 2, c: 3}
array = hash.to_a
puts array.inspect
# 出力: [[:a, 1], [:b, 2], [:c, 3]]
Ippei ShimizuIppei Shimizu

formatメソッド

指定されたフォーマットに従って文字列を生成するために使用されます。

format(フォーマット指定子,1,2, ...)

フォーマット指定子

  • %s - 文字列として変換。
  • %d - 整数として変換。
  • %f - 浮動小数点数として変換。
  • %.nf - 浮動小数点数を小数点以下n桁で丸めて変換。
Ippei ShimizuIppei Shimizu

eachメソッド

配列やハッシュなどの列挙可能なオブジェクトの各要素に対して、ブロック内のコードを実行します。もとのオブジェクトを変更せず、また新しいオブジェクトも生成しません。戻り値は、元のオブジェクト自身になります。

Ippei ShimizuIppei Shimizu

mapメソッド

eachメソッドとは異なり、各要素に対するブロックの戻り値を新しい配列に集めます。つまり、元のオブジェクトは変更せず、新しい配列を生成して返します。

Ippei ShimizuIppei Shimizu

reverseメソッド

文字列や配列を逆順に並び替える。オブジェクト自体を変更せず、その逆順の新しいオブジェクトを返す非破壊メソッドです。reverse!は破壊メソッドになります。

Ippei ShimizuIppei Shimizu

scanメソッド

文字列内で正規表現パターンに一致するすべての部分を検索し、一致した部分の配列として返します。

Ippei ShimizuIppei Shimizu

sliceメソッド

文字列や配列から特定の部分を取り出すために使用されます。

配列.slice(開始位置, 長さ)
配列.slice(開始位置..終了位置)
Ippei ShimizuIppei Shimizu

equal?

https://docs.ruby-lang.org/ja/latest/method/Object/i/equal=3f.html
二つのオブジェクトが同一なものかどうかを調べるときに使用する。再定義してはいけない。

a = "hello"
b = "hello"
a.equal?(b) # => false
c = a
a.equal?(c) # => true

↑ aとbは同じhelloを持っていますが、異なるオブジェクトなのでfalseを返します。cはaと同じオブジェクトを参照しているためtrueを返します。

eql?

二つのオブジェクトが等価であるかどうかを確認します。ハッシュのキーとして使われる際の等価性を判断するのに適しています。完全に同じ型と値のみを等価とします。

1 == 1.0 # => true
1.eql?(1.0) => false

hash = { 1 => "integer", 1.0 => "float" }
hash[1] # => "float"
hash[1.0] # => "float"
Ippei ShimizuIppei Shimizu

attr_accessor

クラス内でインスタンス変数のゲッター(読み取りメソッド)とセッター(書き込みメソッド)を同時に自動的に定義するためのメソッドです。
指定されたシンボル名に対応するインスタンス変数に対してアクセスメソッドを提供します。

class Person
  attr_accessor :name, :age   
end

person = Person.new
person.name = "Jun"
person.age = "20"

puts person.name # => Jun
puts person.age #=> 20

attr_accessorにより、nameageというインスタンス変数に対して、自動的に以下のメソッドが定義されます。

  • name ゲッターメソッド(@nameの値を取得)
  • name= セッターメソッド(@nameに値を設定)
Ippei ShimizuIppei Shimizu

Date.new

年・月・日を引数として受け取り、その値に基づいた日付のオブジェクトを返します。

date = Date.new(2024,4,23)
puts date #=> 2024-04-23
Ippei ShimizuIppei Shimizu

strftime

特定のフォーマットに従って日付や時刻を文字列形式で整形するために非常に便利なメソッドです。

date = Date.new(2024,4,23)
formatted_date = date.strftime("%Y-%m-%d")
puts formatted_date # => 2024-04-23

よく使用されるフォーマット指定子

  • %Y : 年を4桁で表示(例: 2024)
  • %m : 月を2桁で表示(例: 04)
  • %d : 日を2桁で表示(例: 23)
  • %H : 24時間表記の時を2桁で表示(例: 14)
  • %M : 分を2桁で表示(例: 30)
  • %S : 秒を2桁で表示(例: 45)
  • %A : 曜日のフルネーム(例: Sunday)
  • %a : 曜日の短縮形(例: Sun)
  • %B : 月のフルネーム(例: January)
  • %b : 月の短縮形(例: Jan)
Ippei ShimizuIppei Shimizu

concat

文字列や配列を結合するために使用されます。元のデータに指定したデータを追加することができます。(破壊的メソッド)

str1 = "Hello"
str2 = "World"
str1.concat(str2)
puts str1 # => "Hello World"
Ippei ShimizuIppei Shimizu

index

配列や文字列で特定の要素や文字が最初に出現する位置を調べるために使用されます。指定された要素が見つかった時はその位置のインデックスを返し、見つからない場合はnilを返します。

array = [10, 20, 30, 40]
puts array.index(20) # => 1
Ippei ShimizuIppei Shimizu

invertメソッド

ハッシュのキーと値を逆転させるために使用されます。ハッシュのオブジェクトに対して呼び出すことができ、新しいハッシュを返します。返される新しいハッシュでは、元のハッシュの各値が新しいキーとなり、各キーが新しい値となります。

hash = {a: 1, b: 2, c: 3}
inverted_hash = hash.invert
puts inverted_hash  # => {1=>:a, 2=>:b, 3=>:c}
  • もし、元のハッシュに同じ値が複数存在する場合は、逆転したハッシュではその値をキーとするエントリーが一つだけになります。
Ippei ShimizuIppei Shimizu

Time.now

プログラムが実行されるその瞬間のシステム日時を取得します。

Ippei ShimizuIppei Shimizu

eof?

入力ストリームが終端に達したかどうかを判定するために使用されます。ファイル内の内容が全て読み出された後や、入力の終わりに達した際にtrueと返します。

file = File.open("test.txt", "r")
while !file.eof?
  line = file.readline
  puts line
end

file.close
Ippei ShimizuIppei Shimizu

readlines

ファイルや他の入力ストリームから全ての行を読み込んで、それらの行を配列の要素として返すメソッドです。

# ファイルから全行を読み込む
lines = File.readlines("example.txt")

# 読み込んだ行を一つずつ表示
lines.each do |line|
  puts line
end
Ippei ShimizuIppei Shimizu

seek

IOオブジェクトの現在の読み書き位置を指定された位置に移動させるために使用されます。

file = File.open("text.txt", "r")

# ファイルの先頭から100バイトの位置に移動
file.seek(100, IO::SEEK_SET)

puts file.read
file.close
Ippei ShimizuIppei Shimizu

dirname

Fileクラスのクラスメソッドであり、与えられたファイルパスからディレクトリ部分のみ抽出するために使用されます。このメソッドはファイル名や最終的なスラッシュを取り除き、親ディレクトリのパスを返します。

path = "/home/user/docs/letter.txt"
puts File.dirname(path)  # => "/home/user/docs"
Ippei ShimizuIppei Shimizu

chmod

ファイルやディレクトリのアクセス権を変更するために使用されます。

File.chmod(0644, 'example.txt')
Ippei ShimizuIppei Shimizu

rmdir

ディレクトリを削除するために使用されます。

Dir.rmdir('path/to/empty_directory')
Ippei ShimizuIppei Shimizu

collect

別名map。配列やその他の列挙可能なオブジェクトに対して操作を行い、各要素に対してブロック内で指定された処理を適用し、その結果を新しい配列として返します。

Ippei ShimizuIppei Shimizu

select

配列やその他のEnumerableオブジェクトから特定の条件に一致する要素だけを選択して新しい配列を作成するためのメソッドです。

numbers = [1, 2, 3, 4, 5, 6]
even_numbers = numbers.select { |number| number.even? }
puts even_numbers.inspect  # => [2, 4, 6]

select!メソッドは破壊的であり、元の配列自体を変更し、条件に合わない要素を配列から削除します。

Ippei ShimizuIppei Shimizu

detect

別名find。配列などから最初に条件を満たす要素を見つけ出すために使用されます。

Ippei ShimizuIppei Shimizu

inject

別名reduce。配列やハッシュなどのコレクションを一つにまとめる際に使用されます。コレクションの各要素に対してブロックを繰り返し適用し、単一の結果を生成します。

Ippei ShimizuIppei Shimizu

each_cons

指定された数(n)の連続する要素を取り出し、それぞれの組み合わせに対してブロックを実行します。配列のスライスを連続的に取り扱いたいときに便利です。

[1,2,3,4,5].each_cons(3) do |a, b, c|
  puts "#{a}, #{b}, #{c}"
end

# 出力
1, 2, 3
2, 3, 4
3, 4, 5