LoginSignup
0
0

More than 3 years have passed since last update.

Ruby学習2

Posted at

メソッドとか色々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...

0
0
0

Register as a new user and use Qiita more conveniently

  1. You get articles that match your needs
  2. You can efficiently read back useful information
  3. You can use dark theme
What you can do with signing up
0
0