讃岐小僧のEngineering×Techメモ

未経験から挑戦中のプログラミングや、趣味の野球や狩猟について、その他、ビジネスやテクノロジーをテーマに様々なことをつぶやく場所です。

【Ruby Silver 試験】concat, invert, 日付型

str.concat(string)

【Rubyリファレンス】:concat (String)

  • concatメソッドは、<<の別名
  • 文字列の末尾に別の文字列を加えて利用する。
  • 整数integerで文字のコードを指定すると、文字列の末尾に1文字追加する

まずは自分なりに使ってみる。

strings = ["a", "b", "c"]
new_string = ""

strings.each do |string|
  new_string.concat(string)
end

puts new_string

=> abc

<<エイリアスということなので

strings = ["a", "b", "c"]
new_string = ""

strings.each do |string|
  new_string << string #ここを書き換えた
end

puts new_string

=> abc

整数integerで文字のコードを指定すると、文字列の末尾に1文字追加する
え、どういうこと?
とりあえずstring配列に100を追加してみた。

strings = ["a", "b", "c", 100]
new_string = ""

strings.each do |string|
  new_string << string
end

puts new_string


=> abcd

dが追加された。
どうやらintegerで文字を表現することができるようで決まったルールがあるようだ。
あまり行き過ぎると辛いのでこの範囲を調べるのはよしておこう。

Hash.invert

【Rubyリファレンス】:invert (Hash)

  • invertメソッドは、キーを値に、値をキーにしたハッシュを作成する
  • レシーバの各キーと値を「値 => キー」として新しいハッシュに集めて返す
h = {a: 100, b: 200}
p h.invert

=> {100=>:a, 200=>:b}

いつ使うか想像もつかないけど、、とってもシンプルでいいね。

日付型のデフォルト

Date.today.to_sと同じ動作をするコードを選びなさい

この問題嫌いです。どうでもいいから。

選択肢
Date.today.strftime("%y/%m/%d")

選択肢
Date.today.strftime('%y-%m-%d')

選択肢
Date.today.strftime("%Y/%m/%d")

選択肢
Date.today.strftime("%Y-%m-%d") #答えはこれ!!

もう全部出力してやった。

require "date"

p Date.today.to_s
p Date.today.strftime("%y/%m/%d")
p Date.today.strftime('%y-%m-%d')
p Date.today.strftime("%Y/%m/%d")
p Date.today.strftime("%Y-%m-%d")

=> "2019-07-27"
=> "19/07/27"
=> "19-07-27"
=> "2019/07/27"
=> "2019-07-27"

%y'は19となるのに対して、%Y'は2019と出力してくれる。
このあたりは覚えていても良さそうだと思った。

前も引っかかったけど%mは月だけど%Mは分っていうのは覚えてないとわからないかも。。

この記事はここまで。

当ブログではRuby Silverの受験に向けてインプットした内容を記事にメモしているのでRuby Silverを受験される方はこちらものぞいてみてくださいね。