Create
Edit
Diff
FrontPage
Index
Search
Changes
Login
はじめてのひき - RubySucks
Title
! じゆうのせかい !! クラス定義途中で飽きた for i in 0..10 class C def f puts 'hello' end break def g puts 'world' end end end C.new.f C.new.g これは g で例外が飛ぶ。 !! やっぱやめた class C # useful definitions...! end if false C.new # uninitialized constant C (NameError) ! おどろきさいしょうのほうそく !! ぶろっく def do_lambda lambda{ return true }.call return false end def do_proc proc{ return true }.call return false end def do_times 3.times{ return true } return false end p do_proc p do_lambda p do_times !! map & inject Ruby 1.9 にて irb(main):007:0> [1,2].inject(&:+) => 3 irb(main):008:0> [1,2].inject(:+) => 3 irb(main):009:0> [1,2].map(&:to_s) => ["1", "2"] irb(main):010:0> [1,2].map(:to_s) ArgumentError: wrong number of arguments(1 for 0) from (irb):10:in `map' from (irb):10 from /usr/local/lib/ruby/1.9.0/irb.rb:150:in `block (2 levels) in eval_input' from /usr/local/lib/ruby/1.9.0/irb.rb:259:in `signal_status' from /usr/local/lib/ruby/1.9.0/irb.rb:147:in `block in eval_input' from /usr/local/lib/ruby/1.9.0/irb.rb:146:in `eval_input' from /usr/local/lib/ruby/1.9.0/irb.rb:70:in `block in start' from /usr/local/lib/ruby/1.9.0/irb.rb:69:in `catch' from /usr/local/lib/ruby/1.9.0/irb.rb:69:in `start' from /usr/local/bin/irb-1.9.0-1-86:12:in `<main>' ! リテラル !! %q puts %q puts を実行すると puts と出力されます。 !! ひあどくめんとなんです def f(*a)'a'end p(f<<'a') p(f <<'a') a を実行すると "aa" "a" が出力される。 ! すこーぷ Python でも似た挙動をするものも多いか。 !! ブロック引数 irb(main):008:0> i = 0 => 0 irb(main):009:0> 3.times{|i|p i} 0 1 2 => 3 irb(main):010:0> i => 2 これは Ruby 1.9 で 0 に。 !! 代入されつつある変数の値 irb(main):004:0> n = [n, 1] => [nil, 1] !! スコープを作らない if irb(main):001:0> if false then n = 1 end => nil irb(main):002:0> n => nil n は定義されてしまっている。 !! 前置と後置で変わる if n = 1 then p n end は OK 。 p n if n = 1 はダメ。 ! 文字化け !! trailing : if ?????:??:??end 1.8 feature が一箇所ありますどこでしょう。
人生、宇宙、すべての答え+1
:
Keyword(s) (one keyword per line)
[RubySucks]
See
TextFormattingRules
for formatting help.
See TextFormattingRules for formatting help.