メソッドとか色々2
現在、Ruby技術者認定試験silverを取得するべく勉強中です。
言語に対する理解がまだまだなので、基本的な事からアウトプットしていきます。
正規表現
なぜ使うのかとか、そもそも正規表現って何?という話は割愛して、今回は模擬問題に出てきた、以下の正規表現を分解してみます。
/^[hc].*o$/i
/ = スラッシュで囲まれた部分が条件
^ = 行頭の意味。$とセットの関係で、「行頭から行末まで、囲まれた範囲の条件を満たしてくださいね」という意味、だと思ってます。これが無いと、条件を満たしていない文字列が紛れてもパスしてしまう。
$ = 行末。ほぼ同上。railsにおいてはrails4以降は使えず、\Aと\zが使われる。
[hc] = []の範囲内の文字を使って良いよ。この場合はhまたはc。※ただし、後述するiの存在から、h,H,c,Cが使用可能。
.* = 何かしらの文字で0文字以上。要するに何でも良いし、文字が無くても良い。
o = アルファベットのo。※後述iの影響で、oまたはO。
i = 小文字と大文字を区別しない。
メソッドの引数指定
まずはよく見る仮引数、実引数の指定
def jojo(name, stand)
p "#{name}のスタンド:#{stand}"
end
jojo("承太郎", "スタープラチナ")
=> "承太郎のスタンド:スタープラチナ"
仮引数が2つ有るので、実引数の数が足りないとエラーを吐く。
デフォルト値の設定
def jojo(name, stand = "無し") #第二引数にデフォルト値を設定する
p "#{name}のスタンド:#{stand}"
end
jojo("ジョナサン")
=> "ジョナサンのスタンド:無し" #第二引数が無くても値が帰ってくる
デフォルト値から変更する事も可能。
def jojo(name, stand = "無し")
p "#{name}のスタンド:#{stand}"
end
jojo("ジョニィ", "タスク")
=> "ジョニィのスタンド:タスク"
キーワード引数
def jojo(name:, stand: "無し") #シンボルのように引数を設定する
p "#{name}のスタンド:#{stand}"
end
jojo(stand: "キラークイーン", name: "吉良吉影") #実引数もキーワード指定で渡す。キーワード指定なので引数の順番は入れ替えても問題ない。
=> "吉良吉影のスタンド:キラークイーン"
### キーワード引数に好きな引数を使用
任意のキーワードと値をハッシュ型で渡す事が出来る。
def jojo(name:, stand: "無し", **z)
p "#{name}のスタンド:#{stand}"
p z
end
jojo(name: "ディアボロ",stand: "キングクリムゾン", dododo: "オレのそばに", gogogo: "近寄るなああーーーッ")
# キーワード指定されていないキーと値を仮引数zの中に格納
=> "ディアボロのスタンド:キングクリムゾン"
{:dododo=>"オレのそばに", :gogogo=>"近寄るなああーーーッ"}
To_Be_Continued...