【講座?】CoRを触ってみる12~演算子編~【自分用メモ?】
投稿者: 光楼(114) 投稿日:2017/04/01 14:54
【講座?】CoRを触ってみる11~多次元配列編~【自分用メモ?】←前回
前回の答え
実はdebug_logで答えが分かる。
#このブログの情報は2017年4月1日現在のものです。今後変更になる可能性があります。
演算子とは
演算するための記号。
もっと簡単に言うと計算や比較するときに使う記号です。
+とか、==とか。
さて、演算子にも種類があります。
1つ1つ見ていきましょー!
あ、先に言っておきますがa++とかa--とかは2017/11/04現在使えませんのでご注意ください。
算術演算子
ここからだってのに、演算子がゲシュタルト崩壊を始めた……。
算術演算子は足し算等、四則演算をする演算子です。
Rmakeで使えたものは全て使えるので、新たに使えるようになったものだけ紹介します。
ただし、ドキュメントに書かれてないのもあるので注意です。
代数演算子
文字列演算子
算術演算子という分類で良いのだろうか?
文字列に対して使う演算子です。
なお変数に変化を与えるものもあるので注意です。
代入演算子
=等、代入する演算子
関係演算子
2つの値の比較を行う演算子。
条件とあっていればtrueが返る。
論理演算子
論理演算を行うための演算子。
ビット演算子
ビット演算を行うための演算子。
ビット演算についての知識がないと扱うのは難しい。
三項演算子
if文をスリムに書ける。
配列演算子
配列をあれこれする。
色々と使えなくなる可能性大ですが、Rmakeに比べて圧倒的に多くなりましたね。
有効的に使っていきましょう。
本日は以上!疲れた!
次回→【講座?】CoRを触ってみる13~三目並べを作る1~【自分用メモ?】
ツイート
前回の答え
scene 'start' do #シーンstart arr = [ [0, 1, 2, 3], [10, nil, nil, 13], [20, [21, 21.1, 21.2], 22 ]] end start_scene "start"
実はdebug_logで答えが分かる。
#このブログの情報は2017年4月1日現在のものです。今後変更になる可能性があります。
演算子とは
演算するための記号。
もっと簡単に言うと計算や比較するときに使う記号です。
+とか、==とか。
さて、演算子にも種類があります。
1つ1つ見ていきましょー!
あ、先に言っておきますがa++とかa--とかは2017/11/04現在使えませんのでご注意ください。
算術演算子
ここからだってのに、演算子がゲシュタルト崩壊を始めた……。
算術演算子は足し算等、四則演算をする演算子です。
Rmakeで使えたものは全て使えるので、新たに使えるようになったものだけ紹介します。
ただし、ドキュメントに書かれてないのもあるので注意です。
代数演算子
演算子 | 意味 | 備考 |
---|---|---|
a ** b | aのb乗 |
文字列演算子
算術演算子という分類で良いのだろうか?
文字列に対して使う演算子です。
なお変数に変化を与えるものもあるので注意です。
演算子 | 意味 | 備考 |
---|---|---|
a << b | aにbを連結します | a自体が変更されます |
a * b | aをb回繰り返します | aが「あ」,bが「3」なら「あああ」 |
以下フォーマット関連 | 使えなくなる可能性がでかい | |
"%d" % a | aを整数にする | aは数値。小数点を切り捨てる。シングルクォーテーションでも可 |
"%b" % a | aを2進数にする | |
"%o" % a | aを8進数にする | |
"%x" % a | aを16進数にする | |
"%f" % a | aを実数(小数点6桁くらいまで)にする | |
"%e" % a | aを指数表記にします | 結果が「1.100000e+02」だと、1.1 × (10の2乗) |
"%g" % a | aを最適な形式に変えます | 小数点を四捨五入したり指数表記したりを自動で判断 |
"%5.3f" % a | 桁数の指定 | %とアルファベットの間に「全体の最小の幅.小数点以下の最大の幅」という形で桁数の指定が出来る |
"%010.2f" % a | ゼロ埋め | 桁数指定前に0を一つ書くだけ |
"%-10.2f" % a | 左詰め | 桁数指定前にマイナスを付け加えるだけ |
"%+10.2f" % a | 符号表示 | 桁数指定前にプラスを書くと符号を出してくれる |
代入演算子
=等、代入する演算子
演算子 | 意味 | 備考 |
---|---|---|
a += b | a = a + b | |
a -= b | a = a - b | |
a *= b | a = a * b | |
a /= b | a = a / b | |
a %= b | a = a % b | |
a **= b | a = a ** b | 累乗 |
a &= b | a = a & b | ビット演算子。後程説明 |
a |= b | a = a | b | |
a ^= b | a = a ^ b | |
a <<= b | a = a << b | |
a >>= b | a = a >> b | |
a &&= b | a && (a = b) | 変数の中身が存在する場合のみ代入するとき等に使うと良い? |
a ||= b | a || (a = b) | 変数の中身が存在しない場合(nilの時)のみ代入するとき等に使うと良い? |
関係演算子
2つの値の比較を行う演算子。
条件とあっていればtrueが返る。
演算子 | 意味 | 備考 |
---|---|---|
a <=> b | 「a < b」なら「-1」、「a == b」ならば「0」、「a > b」なら「1」、比較できない時は「nil」を返す | |
a === b | aとbが等しいか | case文のマッチングと同じ仕組みの比較を行う |
(1..5) === a | aが1~5の範囲内か | 小数指定可能 |
('a'..'z') === a | aがa~zの範囲内か | このように文字も可。ひらがなもOK |
String === a | aが文字列か |
論理演算子
論理演算を行うための演算子。
演算子 | 意味 | 備考 |
---|---|---|
not a | !a | ! |
a and b | a && b | &&より優先度低い |
a or b | a || b | || |
ビット演算子
ビット演算を行うための演算子。
ビット演算についての知識がないと扱うのは難しい。
演算子 | 意味 | 備考 |
---|---|---|
~a | ビットを反転 | |
a & b | ビット積(どちらも1の時1) | a = 3 #3 => 011 b = 5 #5 => 101 debug_log "#{a & b}" #1 => 001 |
a | b | ビット和(どちらかが1の時1) | a = 3 #3 => 011 b = 5 #5 => 101 debug_log "#{a | b}" #7 => 111 |
a ^ b | 排他的論理和(どちらかが1の時のみ1) | |
a << b | aをbビット左シフト | |
a >> b | aをbビット右シフト |
三項演算子
if文をスリムに書ける。
演算子 | 意味 | 備考 |
---|---|---|
a ? b : c | 条件 ? 式1 : 式2 | if 条件 式1 else 式2 end a = true text = a ? "はい" : "いいえ" debug_log "#{text}" #はい |
配列演算子
配列をあれこれする。
演算子 | 意味 | 備考 |
---|---|---|
arr1 + arr2 | 配列の結合 | arr1 = [1,2,3,4,5,6,7,8] arr2 = [1,5,6] arr3 = arr1 + arr2 debug_log "#{arr3}" #[1, 2, 3, 4, 5, 6, 7, 8, 1, 5, 6] |
arr1 - arr2 | 配列arr1から要素arr2を取り除く | arr1 = [1,2,3,4,5,6,7,8] arr2 = [1,5,6] arr3 = arr1 - arr2 debug_log "#{arr3}" #[2, 3, 4, 7, 8] |
arr1 * n | 配列arr1の要素をn回繰り返す | arr1 = [1,2,3] n = 3 arr3 = arr1 * n debug_log "#{arr3}" #[1, 2, 3, 1, 2, 3, 1, 2, 3] |
arr1 & arr2 | 2つの配列に共通する要素で配列を作る | arr1 = [1,2,3] arr2 = [1,3,5] arr3 = arr1 & arr2 debug_log "#{arr3}" #[1, 3] |
arr1 | arr2 | 上記に加え、片方にしか含まれない要素も追加して配列を作る | arr1 = [1,2,3] arr2 = [1,3,5] arr3 = arr1 | arr2 debug_log "#{arr3}" #[1, 2, 3, 5] |
arr1 << a | 配列arr1に要素aを追加した配列を作る | |
arr1[n..m] | 配列arr1のn~mの要素からなる配列を作る | arr1 = [1,2,3,4,5,6,7,8] n = 1 m = 5 arr3 = arr1[n..m] debug_log "#{arr3}" #[2, 3, 4, 5, 6] |
arr1[n, len] | 配列arr1のn番目からlen個の要素で配列を作る | arr1 = [1,2,3,4,5,6,7,8] n = 1 len = 3 arr3 = arr1[n, len] debug_log "#{arr3}" #[2, 3, 4] |
arr1[n..m] = a | 配列arr1のnからm番目の要素をaに置き換え統合 | arr1 = [1,2,3,4,5,6,7,8] n = 1 m = 4 a = 5 arr1[n..m] = a debug_log "#{arr1}" #[1, 5, 6, 7, 8] |
arr1[n, len] = a | 配列arr1のnからlen個の要素をaに置き換え統合 | arr1 = [1,2,3,4,5,6,7,8] n = 1 len = 3 a = 11 arr1[n, len] = a debug_log "#{arr1}" #[1, 11, 5, 6, 7, 8] |
色々と使えなくなる可能性大ですが、Rmakeに比べて圧倒的に多くなりましたね。
有効的に使っていきましょう。
本日は以上!疲れた!
次回→【講座?】CoRを触ってみる13~三目並べを作る1~【自分用メモ?】
コメントする
コメントするには、ログインする必要があります。
こういうドキュメントが
かなり大事だったりします