このサイトは、只今WEB業界で活躍中のデザイナー、プログラマーの方々の情報を集めたweb統合情報サイトです。

Archives Details

Ruby 基本まとめ

Ruby

2013.12.12

この記事は最終更新日から1年以上が経過しています。

ざっとRubyに関する基礎的な部分をまとめてみました。

Ruby基本

ruby実行
ruby ファイル名

 irb

irb(Interactive Ruby)起動

irb

irb(Interactive Ruby)終了

exit

表示メソッド

print 
puts

数値、文字列変換

to string(文字列へ)

.to_s

to integer (数値へ)

.to_i

to flort(浮動小数点へ)

.to_f

オブジェクト

オブジェクトのクラスを調べる

.class

オブジェクトのスーパークラスを調べる 

.superclass

インスタンスを調べる

.instance_of?(String)
.instance_of?(Fixnum)

空かどうかを調べる 

.empty?

オブジェクトIDを調べる

.object_id

オブジェクトをコピー

.clone

オブジェクトIDが同じか 

.equal?

中身を比較

 == 

Rubyの変数

グローバル変数 $foo
インスタンス変数 @foo
クラス変数 @@foo
ローカル変数 foo
rubyの予約語
BEGIN END alias and begin
break case class def defined?
do else elseif end ensure
false for if in module
next nil not or redo
rescue retry return self super
then true undef unless until
when while yield

定数は全て大文字

ADMIN

制御構造

if文
if 条件 then
  条件が真の時に実行する処理
end
if 条件 then
    条件が真の時に実行する処理
  else
    条件が偽の時に実行する処理
end 

unless文
unless 条件 then
    条件が偽の時に実行する処理
  else
    条件が真の時に実行する処理
end

if 条件1 && 条件2 then

 条件が真の時に実行する処理

end

case文

case 比較するオブジェクト

when 値1 then
    値1と一致した時に実行する処理
  when 値2 then
    値2と一致した時に実行する処理
  when 値3 then
    値3と一致した時に実行する処理
  else
    どの値にも一致しないときに実行する処理
end

繰り返し処理
while文
  while 条件 do
  条件が”真”の時に繰り返す処理
end

sleep

指定時間待機

until文
until 条件 do
  条件が”偽”の時に繰り返す処理
end
for文
for 変数 in オブジェクト do
  繰り返し処理
end

timesメソッド で指定可数繰り返し
整数.times do |変数|
  繰り返す処理
end

timesメソッド他の記述

整数.times { |変数|
  繰り返す処理
}
upto,down toメソッド
times integer
upto integer
downto integer
step Numeric

uptoメソッド
整数.upto(max) do |変数|
  繰り返す処理
end

downtoメソッド
整数.downto(min) do |変数|
  繰り返す処理
end
stepメソッド
整数.step(limit, step) do |変数|
  繰り返す処理
end

eachメソッド
オブジェクト.each do |変数|
  繰り返す処理
end
ループ終了

break

example

dollar = 102
i = 1
loop {
  rate = i * dollar
  if rate >= 5000
    break
  end
  print i, “$ ==> “, <span style="font-family: Arial, 'Arial New', 'MS P ゴシック', sans-serif;">rate</span>, “Yen¥n"</p>
  i = i + 1
}

rubyファイルからの rubyの呼び出し

win
#!C:/ruby/bin/ruby

mac
#!/usr/bin/ruby

コマンドラインで実行
$ ./hoge.rb

文字コード指定
#!/usr/bin/ruby -Ks

EUC -Ke
Shift-JIS -Ks
UTF-8 -Ku

制御文字
¥b バックスペース
¥e エスケープ
¥f 改ページ
¥n 改行
¥r 復帰
¥s 半角スペース
¥t タブ
¥¥ ¥ 
文字列中で変数、式を使用
#{ 変数 }

example

who = “たかやま"
print “こんにちは、”, who, ”さん”
who = “たかやま"
print “こんにちは、#{who}さん”

計算式も可能

print “計算:20 × 20 = #{20*20}です” 

ファイル操作

ファイル操作
File.open(“ファイル名”, “モード")

読み込みのみ

File.open(“index.txt”, “r”)

r 読み込み
r+ 読み込みと書き込み
w 新規に作成して書き込み
w+ 新規に作成して読み込みと書き込み
a 追加で書き込み
a+ 追加で読み込みと書き込み

f = File.open(“index.txt")

まとめて読み込み

f.read

標準出力

print f.read

読み込み後は閉じる

f.close

1行ずつ読み込み
f = File.open(“index.txt”)
f.each{|line|
  print line
}
f.close

配列とハッシュ

配列

foo = []

example

#!/usr/bin/ruby
arr = [“web帳”, “takayama”,”boy"]
print “このサイトは”, arr[0], “です¥n”
print “作者は”, arr[1], “で¥n”
print  arr[1], “は”, arr[2], “である¥n” 

fruit = [“みかん”,”りんご”,”なし”,”ぶどう”,”もも"]
puts fruit [0..3]
puts fruit [1, 3] 
数を調べる
puts fruit.size
puts fruit.length

コマンドライン引数取得
ARGV

example

sample.rb one two

#!/usr/bin/ruby

# 1〜3番目の引数を表示
puts ARGV[0]
puts ARGV[1]
puts ARGV[2] 

全ての引数を表示

puts ARGV 

繰り返し処理での表示

ARGV .each{|arg|
  puts arg
  puts “**************"
} 

ファイルコピー

example

f1 = File.open(ARGV[0])
f2 = File.open(ARGV[1], “w")

data = f1.read
f2.print data

f1.close
f2.close 

ハッシュ

連想配列

キー(key)と値(value)

キー => 値

animal = {

  “cat” => “たま”,

 “dog” => “ぽち”,

 “bird” => “とりんどる”

}

key取得
.keys
value取得
.values

フェッチで取り出す事も可能

.fetch

eachでの繰り返しでの取得

.each_key{|key|
  puts “#{key}"
}
配列のハッシュ
animal = {
  “dog” => [“ぽち”,”じろう”,”ごま”],
  “cat” => [“たま”,”ごろう”,”ひな”]
}
ハッシュの配列
student = [
  { “no” => 1, “name” => “たかやま”, “blood” => “O”},
  { “no” => 1, “name” => “たなか”, “blood” => “A”}
] 
ハッシュのハッシュ
band = {
  “1” => {“name” => “たかやま”, “part” => “guitar”},
  “2” => {“name” => “たなか”, “part” => “vocal”},
  “3” => {“name” => “なかた”, “part” => “bass”}
}

正規表現

マッチするかは~(チルダ)を用いて判別

正規表現オブジェクト =~ 文字列オブジェクト

/^How/ =~ “How are you? "
=> 0

/sad/ =~ “I am sad. "
=> 5
主なメタ文字
. 任意の1文字にマッチ
* 0回以上の繰り返しにマッチ
+ 1回以上の繰り返しにマッチ
? 0回または1回の繰り返しにマッチ
{} 指定した範囲の繰り返しにマッチ
() グループ
[] 文字クラス
^ 行頭にマッチ
$ 行末にマッチ
| いずれかにマッチ
{m} m回にマッチ
{m,} m回以上にマッチ
{m,n} m回以上,n回以下にマッチ

選択

/apple|orange/

グループ化

/(sing){2}/ =~ "singapplesongsingsingsong"
=> 13

後方参照

正規表現グループによる後方参照

/5(.)7(.)/ =~ "123456788"
=> 4
$1
=> "6"
$2
=> "8"

文字クラスの主な略記法
¥w アルファベットと数字
¥W アルファベットと数字以外
¥s 空白文字
¥S 空白文字以外
¥d 数字
¥D 数字以外
¥b 単語の境界
¥B 単語の境界以外
¥A 文字列の最初
¥Z 文字列の最後
日本語の正規表現
s Shift-JIS
e EUC-JP
u UTF-8
n 文字コードなし
文字を置換
文字列.sub(/パターン/,”置換文字列")

すべて置換

.gsub

puts str.gsub(/ウェブ/s,”Web")

メソッド

メソッド定義

def メソッド名
  処理
  ...
end

引数

def hello who
  処理..
end

または

def hello(who)
  処理..
end 

クラス定義

class クラス名
  クラスの定義...
endf

モジュール

モジュールはインスタンスを作れない includeしての利用となる。( Mix-in)

module モジュール名
  モジュール定義
end

ライブラリの読み込み

require “hogege"

以上になりますー。

Comment

Related Article

M1 Mac ruby rbenv install error

2022.10.10

Rails5 gemでmysql2が インストールできない

2019.05.05

Rails5 + devise token authで作る 認証API

2017.05.20

Rails4 + TypeScript + AngularJS + slimで 快適開発環境構築!最短でSPA環境作成。

2016.02.20

Rubyを始める時のまとめ。

2015.04.10

Ruby 基本まとめ

2013.12.12

CATEGORY LIST

LATEST NEWS

Rust - Actix Web mongo ユーザー登録 JWT認証

Rust

2024.03.24

Rust - Actix Web JWT 認証認可 APIの作成

Rust

2024.02.25

Rust - Actix Web × JSON 静的ファイルをAPIで返却

Rust

2024.01.19

Rust - Actix Web × MongoDB環境をサクッと起動

Rust

2024.01.18

5分で学ぶ RustでWave Function Collapse (波動関数崩壊アルゴリズム)

Rust

2024.01.15

LLaMAモデル GGMLフォーマット(llama.cpp)をRustフレームワーク Leptosを用いて M1MacMiniでサクッと動かす。

Rust

2024.01.11

2024年 狙っているモバイルノートPC

tool

2024.01.07

MacOS XcodeにSDL2を追加

tool

2023.12.26

php 7.4にアップデート

PHP

2023.12.24

5分で覚える Flutter Flameで作る Wave Function Collapse - 波動関数崩壊アルゴリズム

AI・Bot・algorithm

2023.12.20

Flutter - Flameでゲーム作成 (キャラクターの移動)

Flutter

2023.07.23

Flutterで作る ChatGPT Prompt Manager

Flutter

2023.07.12

RANKING

Follow

SPONSOR

現在、掲載募集中です。



Links

About Us

WEBデザイナーの、WEBデザイナーによる、WEBデザイナーの為のサイト。「みんなで書こう!」と仲間を募ってみたが、結局書くのは自分だけとなってしまいました。日々のメモを綴っていきます。

Entry Profile

Graphical FrontEnd Engineer
- Daisuke Takayama

MAD CITY 北九州市で生まれ育つ。20代はバンド活動に明け暮れ、ふと「webデザイナーになりたい。」と思い、デジタルハリウッド福岡校入学。卒業後、数々の賞を受賞、web業界をざわつかせる。
現在、主に、ゲーム制作中心に港区六本木界隈で活動中。

FOLLOW US