特訓内容
今日も特訓、というか練習しました。
参考にさせていただいたのは
http://www.lab.ime.cmc.osaka-u.ac.jp/~kiyo/pub/lecture/unixpro/ruby/#basic
ですが、さすがに2005年のサイトだと、情報が結構古いみたいで、コンパイルエラーが結構出ました。
それはそれで勉強になりました。
以下は今日1時間くらいでやった内容です。調べたりしながらやってるのであんまり行数はありません。
あと今日知ったのが、Rubyにはインクリメント演算子が無い、ということ。有名な事なんでしょうけど、今日知った。。。
あとirbが固まる?みたいな現象が。昨日も出てましたが。最後が"になっちゃって、何も効かなくなってしまいます。。。
何でしょう?いわゆる固まった状態?
C:\Users\hangai_m> C:\Users\hangai_m>edlin grep.rb New file * * *exit C:\Users\hangai_m> C:\Users\hangai_m> C:\Users\hangai_m> C:\Users\hangai_m>irb a = [123,"abc",[4,5,6]] C:/Ruby19/lib/ruby/1.9.1/irb/magic-file.rb:7:in `initialize': No such file or directory - a (Errno::ENOENT) from C:/Ruby19/lib/ruby/1.9.1/irb/magic-file.rb:7:in `open' from C:/Ruby19/lib/ruby/1.9.1/irb/magic-file.rb:7:in `open' from C:/Ruby19/lib/ruby/1.9.1/irb/input-method.rb:77:in `initialize' from C:/Ruby19/lib/ruby/1.9.1/irb/context.rb:79:in `new' from C:/Ruby19/lib/ruby/1.9.1/irb/context.rb:79:in `initialize' from C:/Ruby19/lib/ruby/1.9.1/irb.rb:99:in `new' from C:/Ruby19/lib/ruby/1.9.1/irb.rb:99:in `initialize' from C:/Ruby19/lib/ruby/1.9.1/irb.rb:56:in `new' from C:/Ruby19/lib/ruby/1.9.1/irb.rb:56:in `start' from C:/Ruby19/bin/irb:12:in `<main>' C:\Users\hangai_m> C:\Users\hangai_m> C:\Users\hangai_m>irb irb(main):001:0> a = [123,"abc",[4,5,6]] => [123, "abc", [4, 5, 6]] irb(main):002:0> irb(main):003:0* p a [123, "abc", [4, 5, 6]] => [123, "abc", [4, 5, 6]] irb(main):004:0> irb(main):005:0* a.each do |i| irb(main):006:1* p i irb(main):007:1> end 123 "abc" [4, 5, 6] => [123, "abc", [4, 5, 6]] irb(main):008:0> irb(main):009:0* a.each do |i| irb(main):010:1* puts i irb(main):011:1> end 123 abc 4 5 6 => [123, "abc", [4, 5, 6]] irb(main):012:0> irb(main):013:0* irb(main):014:0* p "pとputsは違うのね" "pとputsは違うのね" => "pとputsは違うのね" irb(main):015:0> irb(main):016:0* 1+2+3+4+5 => 15 irb(main):017:0> irb(main):018:0* class Fixnum irb(main):019:1> def + (a) irb(main):020:2> self * a irb(main):021:2> end irb(main):022:1> end => nil C:/Ruby19/lib/ruby/site_ruby/1.9.1/rbreadline.rb:8446:in `_rl_find_next_mbchar': undefined method `force_encoding' for nil:NilClass (NoMethodError) from C:/Ruby19/lib/ruby/site_ruby/1.9.1/rbreadline.rb:1692:in `block in expand_prompt' from C:/Ruby19/lib/ruby/site_ruby/1.9.1/rbreadline.rb:1676:in `each' from C:/Ruby19/lib/ruby/site_ruby/1.9.1/rbreadline.rb:1676:in `expand_prompt' from C:/Ruby19/lib/ruby/site_ruby/1.9.1/rbreadline.rb:1765:in `rl_expand_prompt' from C:/Ruby19/lib/ruby/site_ruby/1.9.1/rbreadline.rb:1790:in `rl_set_prompt' from C:/Ruby19/lib/ruby/site_ruby/1.9.1/rbreadline.rb:4718:in `readline' from C:/Ruby19/lib/ruby/site_ruby/1.9.1/readline.rb:40:in `readline' from C:/Ruby19/lib/ruby/1.9.1/irb/input-method.rb:115:in `gets' from C:/Ruby19/lib/ruby/1.9.1/irb.rb:139:in `block (2 levels) in eval_input' from C:/Ruby19/lib/ruby/1.9.1/irb.rb:271:in `signal_status' from C:/Ruby19/lib/ruby/1.9.1/irb.rb:138:in `block in eval_input' from C:/Ruby19/lib/ruby/1.9.1/irb/ruby-lex.rb:189:in `call' from C:/Ruby19/lib/ruby/1.9.1/irb/ruby-lex.rb:189:in `buf_input' from C:/Ruby19/lib/ruby/1.9.1/irb/ruby-lex.rb:103:in `getc' from C:/Ruby19/lib/ruby/1.9.1/irb/slex.rb:205:in `match_io' from C:/Ruby19/lib/ruby/1.9.1/irb/slex.rb:75:in `match' from C:/Ruby19/lib/ruby/1.9.1/irb/ruby-lex.rb:287:in `token' from C:/Ruby19/lib/ruby/1.9.1/irb/ruby-lex.rb:263:in `lex' from C:/Ruby19/lib/ruby/1.9.1/irb/ruby-lex.rb:234:in `block (2 levels) in each_top_level_statement' from C:/Ruby19/lib/ruby/1.9.1/irb/ruby-lex.rb:230:in `loop' from C:/Ruby19/lib/ruby/1.9.1/irb/ruby-lex.rb:230:in `block in each_top_level_statement' from C:/Ruby19/lib/ruby/1.9.1/irb/ruby-lex.rb:229:in `catch' from C:/Ruby19/lib/ruby/1.9.1/irb/ruby-lex.rb:229:in `each_top_level_statement' from C:/Ruby19/lib/ruby/1.9.1/irb.rb:153:in `eval_input' from C:/Ruby19/lib/ruby/1.9.1/irb.rb:70:in `block in start' from C:/Ruby19/lib/ruby/1.9.1/irb.rb:69:in `catch' from C:/Ruby19/lib/ruby/1.9.1/irb.rb:69:in `start' from C:/Ruby19/bin/irb:12:in `<main>' C:\Users\hangai_m> C:\Users\hangai_m>irb irb(main):001:0> irb(main):002:0* irb(main):003:0* irb(main):004:0* class Fixnum irb(main):005:1> def + (a) irb(main):006:2> self * a irb(main):007:2> end irb(main):008:1> end => nil C:/Ruby19/lib/ruby/site_ruby/1.9.1/rbreadline.rb:8446:in `_rl_find_next_mbchar': undefined method `force_encoding' for nil:NilClass (NoMethodError) from C:/Ruby19/lib/ruby/site_ruby/1.9.1/rbreadline.rb:1692:in `block in expand_prompt' from C:/Ruby19/lib/ruby/site_ruby/1.9.1/rbreadline.rb:1676:in `each' from C:/Ruby19/lib/ruby/site_ruby/1.9.1/rbreadline.rb:1676:in `expand_prompt' from C:/Ruby19/lib/ruby/site_ruby/1.9.1/rbreadline.rb:1765:in `rl_expand_prompt' from C:/Ruby19/lib/ruby/site_ruby/1.9.1/rbreadline.rb:1790:in `rl_set_prompt' from C:/Ruby19/lib/ruby/site_ruby/1.9.1/rbreadline.rb:4718:in `readline' from C:/Ruby19/lib/ruby/site_ruby/1.9.1/readline.rb:40:in `readline' from C:/Ruby19/lib/ruby/1.9.1/irb/input-method.rb:115:in `gets' from C:/Ruby19/lib/ruby/1.9.1/irb.rb:139:in `block (2 levels) in eval_input' from C:/Ruby19/lib/ruby/1.9.1/irb.rb:271:in `signal_status' from C:/Ruby19/lib/ruby/1.9.1/irb.rb:138:in `block in eval_input' from C:/Ruby19/lib/ruby/1.9.1/irb/ruby-lex.rb:189:in `call' from C:/Ruby19/lib/ruby/1.9.1/irb/ruby-lex.rb:189:in `buf_input' from C:/Ruby19/lib/ruby/1.9.1/irb/ruby-lex.rb:103:in `getc' from C:/Ruby19/lib/ruby/1.9.1/irb/slex.rb:205:in `match_io' from C:/Ruby19/lib/ruby/1.9.1/irb/slex.rb:75:in `match' from C:/Ruby19/lib/ruby/1.9.1/irb/ruby-lex.rb:287:in `token' from C:/Ruby19/lib/ruby/1.9.1/irb/ruby-lex.rb:263:in `lex' from C:/Ruby19/lib/ruby/1.9.1/irb/ruby-lex.rb:234:in `block (2 levels) in each_top_level_statement' from C:/Ruby19/lib/ruby/1.9.1/irb/ruby-lex.rb:230:in `loop' from C:/Ruby19/lib/ruby/1.9.1/irb/ruby-lex.rb:230:in `block in each_top_level_statement' from C:/Ruby19/lib/ruby/1.9.1/irb/ruby-lex.rb:229:in `catch' from C:/Ruby19/lib/ruby/1.9.1/irb/ruby-lex.rb:229:in `each_top_level_statement' from C:/Ruby19/lib/ruby/1.9.1/irb.rb:153:in `eval_input' from C:/Ruby19/lib/ruby/1.9.1/irb.rb:70:in `block in start' from C:/Ruby19/lib/ruby/1.9.1/irb.rb:69:in `catch' from C:/Ruby19/lib/ruby/1.9.1/irb.rb:69:in `start' from C:/Ruby19/bin/irb:12:in `<main>' C:\Users\hangai_m> C:\Users\hangai_m> C:\Users\hangai_m> C:\Users\hangai_m>irb irb(main):001:0> irb(main):002:0* irb(main):003:0* def three_times irb(main):004:1> yield irb(main):005:1> yield irb(main):006:1> yield irb(main):007:1> end => nil irb(main):008:0> irb(main):009:0* i = i; three_times { i *= 2 } NoMethodError: undefined method `*' for nil:NilClass from (irb):9:in `block in irb_binding' from (irb):4:in `three_times' from (irb):9 from C:/Ruby19/bin/irb:12:in `<main>' irb(main):010:0> irb(main):011:0* three_times { print "abc\n" } abc abc abc => nil irb(main):012:0> irb(main):013:0* irb(main):014:0* def foo irb(main):015:1> yield(1,2) irb(main):016:1> end => nil irb(main):017:0> irb(main):018:0* foo {|a,b| irb(main):019:1* p[a,b] irb(main):020:1> } NoMethodError: undefined method `[]' for nil:NilClass from (irb):19:in `block in irb_binding' from (irb):15:in `foo' from (irb):18 from C:/Ruby19/bin/irb:12:in `<main>' irb(main):021:0> irb(main):022:0* string = "ABCDE" => "ABCDE" irb(main):023:0> len = string.length => 5 irb(main):024:0> irb(main):025:0* "ABCDE".length => 5 irb(main):026:0> irb(main):027:0* irb(main):028:0* =begin irb(main):029:0= これはコメント。あんまり見たこと無くね? irb(main):030:0= =end irb(main):031:0* irb(main):032:0* irb(main):033:0* print "abc"; print "def" abcdef=> nil irb(main):034:0> irb(main):035:0* VAR = "定数" => "定数" irb(main):036:0> $var = "global hensu" => "global hensu" irb(main):037:0> irb(main):038:0* def func irb(main):039:1> var = "local hensu" irb(main):040:1> end => nil irb(main):041:0> irb(main):042:0* class Class irb(main):043:1> @@var = "class hensu" irb(main):044:1> def initialize irb(main):045:2> @var = "instance hensu" irb(main):046:2> end irb(main):047:1> end => nil irb(main):048:0> irb(main):049:0* Class.new.initialize NoMethodError: private method `initialize' called for #<Class:0x1d5ade0> from (irb):49 from C:/Ruby19/bin/irb:12:in `<main>' irb(main):050:0> irb(main):051:0* irb(main):052:0* a = 100 => 100 irb(main):053:0> a,b = 10,20 => [10, 20] irb(main):054:0> irb(main):055:0* a = (1+2)/(3-4) * 5 => -15 irb(main):056:0> irb(main):057:0* a = (1 &&2) and (3 || 4 ) or !(5) => 3 irb(main):058:0> irb(main):059:0* a = 7 %2 => 1 irb(main):060:0> irb(main):061:0* a = 3 ** 0.5 => 1.73205080756888 irb(main):062:0> irb(main):063:0* 2 ** 2 => 4 irb(main):064:0> 8 ** 2 => 64 irb(main):065:0> 3 ** 2 => 9 irb(main):066:0> 3 ** 0.3 => 1.39038917031591 irb(main):067:0> 4 ** 0.5 => 2.0 irb(main):068:0> irb(main):069:0* 8 ** 0.5 => 2.82842712474619 irb(main):070:0> irb(main):071:0* a = (1 == 2 ) or (3 != 4) or (5 <6) or (7<=8) => true irb(main):072:0> irb(main):073:0* irb(main):074:0* a = [1,2,3,4,5] => [1, 2, 3, 4, 5] irb(main):075:0> irb(main):076:0* b = [6,7,8,9,10] => [6, 7, 8, 9, 10] irb(main):077:0> irb(main):078:0* a.size => 5 irb(main):079:0> irb(main):080:0* a | b => [1, 2, 3, 4, 5, 6, 7, 8, 9, 10] irb(main):081:0> irb(main):082:0* a & b => [] irb(main):083:0> irb(main):084:0* a -b => [1, 2, 3, 4, 5] irb(main):085:0> irb(main):086:0* a.shift => 1 irb(main):087:0> irb(main):088:0* a => [2, 3, 4, 5] irb(main):089:0> a.join("/") => "2/3/4/5" irb(main):090:0> irb(main):091:0* a <<6 irb(main):092:0" a irb(main):093:0" ; irb(main):094:0" irb(main):095:0" ; irb(main):096:0" aaaa irb(main):097:0" exit irb(main):098:0" irb(main):099:0" ^C irb(main):100:0" ^C irb(main):101:0" ^C irb(main):102:0" ^C irb(main):103:0" irb(main):104:0" irb(main):105:0" ^C irb(main):106:0" exit irb(main):107:0" irb(main):108:0" > irb(main):109:0" < irb(main):110:0"