(1)#单行字符串与多行字符串的区别string_line="我是一个字符串"multiple_line=%Q{今天天气不错.我突然想出去走走}puts string_lineputs multiple_line(2)symbol不变的字符串class Apple5 attr_accessor :colorend#:color等价于‘color’.siymbol(3)symbol和string转换vagrant@vagrant-Ubuntu-trusty-64:/vagrant/test_PRoject$ irbirb(main):001:0> 'abc'=> "abc"irb(main):002:0> :def=> :defirb(main):003:0> 'abc'.class=> Stringirb(main):004:0> :def.class=> Symbolirb(main):005:0> 'abc'.to_sym=> :abcirb(main):006:0>(4)使用字符串插值irb(main):006:0> a=1=> 1irb(main):007:0> "abc"+aTypeError: no implicit conversion of Fixnum into String from (irb):7:in `+' from (irb):7 from /home/vagrant/.rbenv/versions/2.1.2/bin/irb:11:in `<main>'irb(main):008:0> "abc#{a}"=> "abc1"irb(main):009:0>(5)同一个hash的三种写法#任何情况下都生效的语法: =>jim={ :name=>'Jim', :age=>20}#Ruby 1.9.0之后产生的语法:更加简洁jim={ name:"Jim", age:"20"}#也可以写成:jim={}jim[:name]="Jim"jim[:age]=20
(4)分支语句
a=1case a when 1 then puts "1" when 2 then puts "2" when 3, 4, 5 then puts "3,4,5" else puts "else"end(5)each
[1,2,3].each {|e| puts e}#等价于下方for e in [1,2,3] puts "这是for方法" puts eend#for方法与each的不同,for方法后面的变量是全局变量puts "这是for方法的全局变量"+e.to_s运行结果:
123这是for方法1这是for方法2这是for方法3这是for方法的全局变量3
(6)loop和while的区别
a=10loop do puts "这是loop方法"+a.to_s a=a-1 break if a<8endb=10begin puts "这是while方法"+b.to_s b=b-1end while b>8运行结果:这是loop方法10这是loop方法9这是loop方法8这是while方法10这是while方法9
新闻热点
疑难解答