Ruby学習ログ〜引数と返り値、ハッシュ操作、injectの使い方!

プログラミング技術ブログ

もみあげ稲荷の学び!

本日はRubyの基礎として、以下の内容を学びました。

  • 引数の渡し方と返り値
  • injectの使い方
  • ハッシュの操作(値の追加、結合、合計の計算、最大値の取得、フィルタリング)
  • アプリ開発の実践(ログイン機能の実装、bcryptの活用)

「とりあえずコードを書いてみることが大切」だということを改めて実感しました。この記事を読むことで、プログラミング学習の基本的かつ重要なことが学べます!!ぜひ学んだことがある人も初めての方も最後まで読んでみてください。

引数の渡し方と返り値

メソッドを作成する際、引数を渡して処理を行い、返り値を返すことはとても重要です。 例えば、配列の合計を計算するメソッドを作るとしましょう。

def sum_array(numbers)
  numbers.sum
end

arr = [10, 20, 30]
puts sum_array(arr)  # => 60

また、return は明示的に書かなくても、メソッドの最後の評価結果が返ります。

def multiply(a, b)
  a * b  # return a * b と同じ意味
end

puts multiply(3, 4)  # => 12

injectの使い方

inject は、繰り返し処理を行いながら値を累積させるのに便利なメソッドです。 例えば、配列の合計を求めるには以下のように書けます。

numbers = [10, 20, 30]
total = numbers.inject(0) { |sum, num| sum + num }
puts total  # => 60

sum メソッドを使うとよりシンプルに書けます。

puts numbers.sum  # => 60

ハッシュの操作

ハッシュへの値の追加と代入

scores = {}
scores[:math] = 80  # 追加
scores[:english] = 90
puts scores  # => {:math=>80, :english=>90}

join(“,”)を使って値を結合

names = {a: "Alice", b: "Bob", c: "Charlie"}
puts names.values.join(", ")  # => "Alice, Bob, Charlie"

合計値を取得(values.sum)

scores = {math: 80, english: 90, science: 85}
puts scores.values.sum  # => 255

最大値のキーを取得

max_subject = scores.max_by { |_, v| v }[0]
puts max_subject  # => :english

80点以上のデータを抽出

high_scores = scores.select { |_, v| v >= 80 }
puts high_scores  # => {:math=>80, :english=>90, :science=>85}

アプリ開発を通じて感じたこと

  • ループ処理(loop, each, inject)をもっと深めたい
  • bcrypt のような便利なライブラリの存在を知った
  • コードはコピーして試してOK。とにかく書いてみることが大事!

ログイン機能を実装し、ハッシュ化されたパスワードの扱いを学ぶことで、実際のアプリにおける認証の仕組みを少し理解できた気がします。

  • ループ処理(loop, each, inject)をもっと深めたい
  • bcrypt のような便利なライブラリの存在を知った
  • コードはコピーして試してOK。とにかく書いてみることが大事!

ログイン機能を実装し、ハッシュ化されたパスワードの扱いを学ぶことで、実際のアプリにおける認証の仕組みを少し理解できた気がします。

まとめ

今日の学びを通じて、Rubyの基本的な構文の理解が深まりました。特に、引数と返り値の概念injectの使い方ハッシュの操作は今後もよく使うので、しっかりと理解を深めたいです。

次のステップとしては、ループ処理の応用Railsを使ったWebアプリ開発に進みたいと思います。

ちなみに、この学習を「chatGPT」を使って行いました。スクールに何十万もかけたくない!だけど独学で学んでいるのは不安!そんな私は、AIの可能性に気づきました。「chatGPT」を使って実績を上げることで、お金がなくてもスキルを身につけることができることを証明していきます!!!

明日からも技術ブログをコツコツ更新していきます!!!

コメント

タイトルとURLをコピーしました