うめすこんぶ

日々のプログラミングで残しておきたいメモ.何かの役に立てれば幸いです.

rubyを最低限使いたい人のための1分基本文法

スポンサーリンク

最低限、簡単なアルゴリズムが書けるぐらいの文法をおさらい。ほんとに最低限です。

コメント

# ここにコメントを書く。

プリント文

puts 1

(pprint もありますが、pは日本語でutf-8だとうまく表示されない、printは改行出力してくれない、という理由でputsお勧めです。 )

変数宣言

整数、小数

i = 1

intvarなどの変数宣言用の型指定子などはいりません。

文字列

s = "String"

配列

a = [1, 2, 3]

グローバル変数

$g = "global"

$を付けます。

定数

CONST = "constant"

頭文字を大文字にします。

算術演算

加減乗除

a = 1 + 1                       # 和
a = 1 - 1                       # 差
a = 1 * 1                       # 積
a = 1 / 1                       # 商
a = 1 % 1                       # 余り
a = 2 ** 3                      # べき乗(2の3乗)
a += 1                          # a = a + 1
a -= 1                          # a = a - 1
a *= 1                          # a = a * 1
a /= 1                          # a = a / 1
a %= 1                          # a = a % 1
a **= 2                         # a = a**2

(a++a--は使えません)

論理演算

a == b                        # 等価
a || b                     # 論理和 ( `a and b`も可)
b && c                      # 論理積 (`a or b`も可)
!b                          # 否定 (一応、`not b`もある)

文字列演算

"a" + "b"                      # 結合 => "ab"
"a" * 3                        # 繰り返し => "aaab"
"abcdef"[0]                    # 取り出し => "a"

配列演算

a | b                         # 和集合
a & b                         # 積集合
a - b                         # 差
a << 4                          # 追加
a[0] = 3                        # 置換
b = a[0..4]                         # 0から4までの参照
a[0..3] = 3                         # aの0から3までの要素を1つの要素3で置き換え(要素数が減る)

条件分岐

if

if a == 1                       # if-else文
  # process1 
elsif a == 2
  # process2 
else 
  # process3
end

case

str = "str"
case str                        # case文
  when "ruby"
  # process
  when "perl"
  # process
  else
  # process
end

whenはc言語でのcase :部分、elseはdefault部分に対応。 break文がなくても勝手にwhenのブロックを出てくれます。

繰り返し

for

for i in [0..4]                # i=0から4まで繰り返し
  puts i
end

while

while i < 2
  i = i + 1
end

メソッド

定義

def hoo(a)
  puts a
end

使用

hoo(a)
hoo a

カッコは省略可能。

複数引数の場合
bar(a, b)
bar a, b