2014-03-01から1ヶ月間の記事一覧
array = [1,2,3,4,5] for x in array puts x end array.each do |y| puts y end puts x #=>5 puts y #=>エラーを返す eachメソッド内のブロックは独自のスコープを持つ
Rangeオブジェクトにおいてcase等値演算子(===)は以下のように定義される。 左辺(Rangeオブジェクト)が示す範囲内に右辺の値が属していればtrue、それ以外はfalse。 (1..10) === 4 #=> true (1..10) === 10 #=> true (1..10) === 10.1 #=> false case文にお…
#include <stdio.h> #define EOL 10 int main() { int c, length = 0; c = getchar(); while (c != EOF) { if (c == EOL) { printf("%d\n", length); length = 0; } else { length = length + 1; } c = getchar(); } return 0; } getcharは、入力ストリームに文字が存</stdio.h>…
class Object def myand(x) if self == nil false elsif self == false false else if x == nil false elsif x == false false else x end end end end a = 5 b = nil a.myand(b) #=> nil (a&&bと同じ役割) 絶対もっと上手い書き方ありますが…。 内部では…
a = "01234" true || a.reverse! #(1) a #=>"01234" この場合、(1)式の左辺のみで(1)式の評価が決定され、右辺は評価されない。
def a 1 end a #=> 1 (メソッドaの実行) a = 0 if false a #=> nil (変数aの参照) a = 2 a #=> 2 (変数aの参照) 以上のように、Rubyは、変数の定義式が現れた瞬間に、aをメソッドではなく変数への参照として扱い始める。 実際の代入が行われているかど…