Ruby basics

おもな条件分岐構文

構文概要参考情報
(Rubyリファレンス)
if ... end条件が真の場合に処理を実行if
unless ... end条件が偽の場合に処理を実行unless
case ... end1つの変数や式に対する一致判定によって処理を分岐case

おもな繰り返し構文

構文概要参考情報
(Rubyリファレンス)
while ... end条件が真の間、処理を繰り返して実行while
until ... end条件が真になるまで、処理を繰り返して実行until
for ... end列挙された要素に対して、処理を繰り返して実行for
times do ... end与えられた回数分だけ、処理を繰り返して実行times
each do ... end与えられた範囲に対して、処理を繰り返して実行each
step do ... end与えられた範囲と刻み幅に対して、処理を繰り返して実行 range.step numeric.step
loop do ... end中断されるまで、処理を繰り返して実行loop

おもな定義構文

構文概要備考参考情報
(Rubyリファレンス)
def メソッド名 ... endメソッドを定義 String
class クラス名 ... endクラスを定義クラス名の先頭は大文字アルファベット
module モジュール名 ... endモジュールを定義モジュール名の先頭は大文字アルファベット

おもなクラスおよびモジュール

クラス /
モジュール
概要備考参考情報
(Rubyリファレンス)
String文字列クラス
rbCanvas/p5では、Rubyの Stringクラスの各メソッドが使用できます
ただし、Opal(JavaScript)の制約により、「downcase!」や「gsub!」などの
オブジェクト自身を破壊的に書き換えるメソッドは実行時にエラーとなります。
なお、p5.jsにも文字列の操作に関するメソッド(関数)が用意されていますが、
それらのメソッド(関数)は rbCanvas/p5では使用できません。
 String Functions(p5.js)
  join
  match
  matchAll
  nf
  nfc
  nfp
  nfs
  split
  splitTokens
  trim
String
Array配列クラス
rbCanvas/p5では、Rubyの Arrayクラスの各メソッドが使用できます
なお、p5.jsにも配列の操作に関するメソッド(関数)が用意されていますが、
それらのメソッド(関数)は rbCanvas/p5では使用できません。
 Array Functions(p5.js)
  append
  arrayCopy
  concat
  reverse
  shorten
  shuffle
  sort
  splice
  subset
Array
Hashハッシュクラス
rbCanvas/p5では、Rubyの Hashクラスの各メソッドが使用できます
キーを指定してデータにアクセスする場合、
JavaScript(p5.js)でのハッシュのように
object.key」という記法ではエラーになりますので、
object[:key]」などのように Rubyの仕様に則した記法でアクセスしてください。
Hash
Math数学関数モジュール
rbCanvas/p5では、Rubyの Mathモジュールの各メソッドが使用できます
ただし、p5.jsで提供されている諸々の数学関数が優先されますので
Rubyで提供されている数学関数を使う際には
Math.cos」や「Math.log」のように
明示的に「Math」モジュール名での修飾が必要です。
Math
Date日付クラス
rbCanvas/p5では、Rubyの Dateクラスの各メソッドが使用できます
なお、p5.jsにも日付の操作に関するメソッド(関数)が用意されていますが、
それらのメソッド(関数)は rbCanvas/p5では使用できません。
 Date Functions(p5.js)
  day
  month
  year
Date
Time時刻クラス
rbCanvas/p5では、Rubyの Timeクラスの各メソッドが使用できます
なお、p5.jsにも時刻の操作に関するメソッド(関数)が用意されていますが、
それらのメソッド(関数)は rbCanvas/p5では使用できません。
 Time Functions(p5.js)
  second
  minute
  hour
Time
Regexp正規表現クラス
rbCanvas/p5では、Rubyの Regexpクラスの各メソッドが使用できます
JavaScript(p5.js)での正規表現とは仕様が異なる点がありますのでご留意ください。
Regexp
Proc手続きクラス
rbCanvas/p5では、Rubyの Procクラスの各メソッドが使用できます
JavaScriptのように関数(メソッド)自体を引数として指定することができないため、
コールバック処理などで一連の手続き(処理)を渡す必要がある場合などには
Procオブジェクトを生成して利用してください。
(利用例: isLooping など)
Proc proc

おもな変換

内容備考参考情報
(Rubyリファレンス)
to_i文字列 → 整数"2".to_i #=> 2 to_i
to_f文字列 → 数値"2.5".to_f #=> 2.5 to_i
to_s数値 → 文字列100.to_s #=> "100" to_i
abs絶対値を取得 -5.abs #=> 5p5.jsの abs(-5)と同じ to_i
round小数点以下の指定桁になるように
四捨五入した値を取得
3.1415.round(2) #=> 3.14p5.jsの round(3.1415, 2)と同じ to_i
ceil小数点以下の指定桁になるように
切り上げた値を取得
3.1415.ceil(1) #=> 3.2p5.jsの ceilでは桁数指定不可 to_i
floor小数点以下の指定桁になるように
切り捨てた値を取得
3.1415.floor(1) #=> 3.1p5.jsの floorでは桁数指定不可 to_i

おもな書式指定

内容備考参考情報
(Rubyリファレンス)
式展開"#{式}" の形式で文字列中に式の値を埋め込みJavaScriptの `${変数}`に相当 to_i
format
sprintf
所定の書式指定子によって変数などの値の出力書式を制御C言語での printの書式指定子と同じ to_i to_i
(書式文字列) %同上同上 to_i

おもな擬似変数

擬似変数内容備考
true「真」をあらわす
false「偽」をあらわす
nil「存在しない状態」をあらわす真偽値の判定では「偽」として扱われます
self「オブジェクト自身」をあらわす現在のメソッドの実行主体

おもな演算子

算術演算子
演算子内容
a + b加算10 + 5 #=> 15
a - b減算10 - 5 #=> 5
a * b乗算10 * 5 #=> 50
a / b除算10 / 5 #=> 2
a % b剰余(余り)演算10 % 5 #=> 0
a ** bべき乗10 ** 5 #=> 100000
代入演算子
演算子内容
a = baに bを代入a = 5 #=> aに 5を代入
a += ba = a + b と同じa += 5 #=> aに 5を足した値を再代入
a -= b減算a -= 5 #=> a から 5を引いた値を再代入
a *= b乗算a *= 5 #=> a に 5を掛けた値を再代入
a /= b除算a /= 5 #=> aを 5で割った値を再代入
a %= b剰余(余り)演算a %= 5 #=> aを 5で割った余りを再代入
a **= bべき乗a **= 5 #=> aを 5乗した値を再代入
比較演算子
演算子内容
a == ba とb が等しい0 == 1 #=> false
a != ba とb が等しくない0 != 1 #=> true
a < ba がb より小さい0 < 1 #=> true
a > ba とb より大きい0 > 1 #=> false
a <= ba とb以下である0 <= 1 #=> true
a >= ba とb以上である0 >= 1 #=> false
論理演算子
演算子内容備考
! c条件c が満たされていない
c1 && c2条件c1, c2 がどちらも満たされている
c1 || c2条件c1, c2 のいずれかが満たされている
not c条件c が満たされていない! よりも結合の優先順位が低い
c1 and c2条件c1, c2 がどちらも満たされている&& よりも結合の優先順位が低い
c1 or c2条件c1, c2 のいずれかが満たされている|| よりも結合の優先順位が低い