💎
Rubyまとめ
Rubyとは
日本人のまつもとゆきひろさんが開発したオブジェクト指向言語。
開発者が日本人ということで、日本語のドキュメントが豊富
Rubyのメリット
- わかりやすい
シンプルで読みやすいため、コードの可読性が高く学習の障壁が低い - オブジェクト指向
- フレームワークを用いることによる生産性の高さ
- コミュニティが活発
豊富なライブラリやツールが提供されている - 大規模開発にも適している
読みやすさやメンテナンス性に富んでいるため、
大規模開発でも品質を保ちながら開発ができる - 多岐にわたる用途
Webアプリ開発、バッチ処理、スクリプト作成、自動化など様々な用途がある - ドキュメントが豊富
良質で豊富な公式ドキュメントやチュートリアルがあるため、
初心者でも学習しやすい
Dockerを用いた環境構築
Ubuntu環境で以下を実行
FROM ruby:3.2.3
WORKDIR /app
compose.yml
services:
app:
build: .
volumes:
- .:/app]
user: 1000:1000
Rubyの実行方法
ファイルの書き方
test.rb
puts 1 + 3
ターミナルを用いた実行
ruby test.rb
やってみた
touch test.rb
code test.rb
vscodeが開くので、さっきのtest.rb
のコードを追加
ruby test.rb
を実行。できた
Rubyを実行する方法
- ターミナルでの実行
簡単にプログラムを試す際に適している
$ ruby -e 'puts "Hello World!"'
Hello World
- Rubyの対話型インタプリタを起動する
簡単なコードテストや動作確認に適している
Dockerを起動したのち、
irb
コマンドでRubyの対話型インタプリタを起動
$ docker compose run app bash
$ irb
irb(main):001:0> puts "Hello World!"
Hello World!
=> nil
irb(main):002:0> exit
- Rubyのスクリプトファイルを実行する
rubyコマンドを使うことで、ファイルのプログラムを実行する
ファイルにコードを残せるため、複雑なコードを書く際に適している。
hello.rb
puts "Hello World!"
$ ruby "Hello World"
関数と引数
def greet(message)
puts message
end
greet("Hello World")
関数greetに対して引数Hello Worldを渡し、最後に関数を呼び出している
足し算と掛け算
calc.rb
def cashier(price1, price2)
puts (price1 + price2) * 100
end
cashier(20, 6)
配列とループ
zoo.rb
def zoo(animals)
animals.each do |animal|
puts animal
end
end
zoo(['うさぎ', 'かめ', 'ひつじ'])
calc.rb
def calc(prices)
sum = 0
prices.each do |price|
sum += price
end
puts "合計税込み#{(sum * 1.1).floor}円です!"
end
calc([198, 298, 1980])
ハッシュ
Javascriptでいうオブジェクトに似ている
ハッシュ化のハッシュのことかと思った...
book.rb
hash = { "title" => "吾輩は猫である" }
# 新しいキーと値を追加
hash["price"] = 1200
# 既存のキーの値を更新
hash["title"] = "山月記"
puts hash # 出力: {"title"=>"山月記", "price"=>1200}
イテレーション
book.rb
hash = { title: "7つの習慣", price: 1800 }
hash.each do |key, value|
puts "#{key}: #{value}"
end
# 出力:
# title: 7つの習慣
# price: 1800
ハッシュの入った配列
books.rb
def cashier(books)
sum = 0
books.each do |book|
puts "#{book[:title]}が#{book[:price]}円"
sum += book[:price]
end
puts "合計税込み#{(sum * 1.1).floor}円です!"
end
books = [{ title: "吾輩は猫である", price: 1000 }, { title: "山月記", price: 1200 }, { title: "7つの習慣", price: 1800 }]
cashier(books)
Discussion