【Ruby】クラスとインスタンス 指定した文字列を表示したい!
class Article
def initialize(author, title, content)
@author = author
@title = title
@content = content
end
end
↑上記コードに書き足しをして、
著者: 阿部
タイトル: Rubyの素晴らしさについて
と出力されるようにしたい!
【模範解答】
class Article
def initialize(author, title, content)
@author = author
@title = title
@content = content
end
def author
@author
end
def title
@title
end
def content
@content
end
end
article = Article.new("阿部", "Rubyの素晴らしさについて", "Awesome Ruby!")
puts "著者: #{article.author}"
puts "タイトル: #{article.title}"
puts "本文: #{article.content}"
【自分への説明】
①出力について…
puts "文字列"
と入力すると出力させることができる。
例えば、任意のhello.rbというファイルに
puts "Hello World!!"
と入力し、該当するディレクトリで
ruby hello.rb
と入力すると
ターミナル上で
と出力される。
②article = Article.new("阿部", "Rubyの素晴らしさについて", "Awesome Ruby!")
上記コードは、Article.newでインスタンスを生成し、変数articleに代入している。
その際に、阿部、Rubyの素晴らしさについて、Awesome Ruby!の3つ実引数を指定する。
※ここでは、"阿部", "Rubyの素晴らしさについて", "Awesome Ruby!"が実引数
③initializeメソッドについて
initializeメソッドとは、インスタンスが生成された瞬間に、生成されたそのインスタンスが実行する処理を定義するインスタンスメソッド。
Rubyのクラスから生成されるすべてのインスタンスにはこのinitializeメソッドが用意されており、クラスに何も記述しなくてもinitializeメソッドは自動で実行されている。この場合のinitializeメソッドは基本的に何も処理は行わない。
問題解説に戻ると…
ここでは、initializeメソッドを定義して、インスタンス変数を宣言した。実引数として指定した値を、仮引数のauthor、 title、contentにそれぞれ渡している。
そうすることにより、initializeメソッドで宣言されたインスタンス変数に、阿部、Rubyの素晴らしさについて、Awesome Ruby!という3つの値が代入される。
@author = author(阿部)
@title = title(Rubyの素晴らしさについて)
@content = content(Awesome Ruby!)
↑こんなイメージ?
④
def author
@author
end
def title
@title
end
def content
@content
end
end
この部分で、上記インスタンス変数の値を返すための専用のメソッドをそれぞれ定義している。
⑤最後に
puts "著者: #{article.author}"
puts "タイトル: #{article.title}"
puts "本文: #{article.content}"
上記のコードで、先ほど定義づけたメソッドを呼び出している。
【Git Hub】pullとclone
pullもcloneもリモートリポジトリから、ローカルリポジトリに反映すること。
pull → ローカルリポジトリとリモートリポジトリが紐づいている
(開発中何回も行うことが多い)
clone → ローカルリポジトリとリモートリポジトリが紐づいていない
ネット上にリモートリポジトリが存在し、それを参考にしたいとき、それを真 似て制作をしたいときに使う
(開発中1回だけ行う)
という違いがある。
push → 紐づいていて初めてできることである。
100%の理解はできていない。
今後学習を進めていく中で慣れていくというアドバイスもいただいたので、学習を進めるにあたってどうしようもなく理解できなかった際にまた確認する。
【Ruby】2重ハッシュから取り出す
user_data = [
{user: {profile: {name: 'George'}}},
{user: {profile: {name: 'Alice'}}},
{user: {profile: {name: 'Taro'}}},
]
から、George,Alice,Taroを取り出したい!
解答
user_date.each do |u|
puts u[:user][:profile][:name]
end
ハッシュから何か情報を取り出したいとき、
ハッシュ[取得したい値のキー] で取得ができる。
2重ハッシュの場合は、連続して取得したいキーのところまで指定すると取得できる
例:ハッシュ[:user][:profile][:name]
※ここでは、nameを取得したいので、その前のuser,profileから連続して指定している。
補足
○each文について
eachとは、配列やハッシュの要素1つ1つに対して、要素の数だけ繰り返し処理が行えるメソッド。
[配列 or ハッシュ].each do | [変数] |
# 処理
end
と入力する。
【Ruby】変数hashを作成する
例えば、
puts hush.keys
puts hush.values
と実行した際に、
one
two
three
1
2
3
と出力されるようにしたい!
解答としては
hash = { one:1, two:2, three:3 } ※hashを生成している。
となる。
ここでいう、「one」の部分を「キー」
「1」の部分を「値」と呼ぶ
オブジェクト.keysで「キー」取得
オブジェクト.valuesで「値」を取得
関係のある複数の値を管理するときにhashを生成し管理しやすくする。
本ブログの活用について
本ブログについては私が今後学んでいくものを、誰かに教えるという場面を想定して書き綴っていくものです。
いつか私の蓄えた情報が誰かの役に立つ時が来るといいですが、、、