美文网首页
ruby-字符串与符号

ruby-字符串与符号

作者: GALAXY_ZMY | 来源:发表于2016-01-03 20:28 被阅读524次

    字符串(String类)与符号(Symbol)这两种变量类型的特点和区别:

    1. 字符串和符号,都是Ruby中表示文本的方式
      不管字符串变量也好,符号变量也好,都是用来表示文本的,它们之间,也可以互相转换(通过to_sym和to_s):
      "house".to_sym => :house
      :house.to_s => "house"

    2. 相同的符号是一个对象,相同的字符并不一定是一个对象
      这就是符号和字符串最大的差别,符号是不可变的,不能对一个符号进行修改。所以说,两个看起来相同的符号一定是一个对象,但是说两个看起来一样的字符串是一个对象,就不对了。
      这里,我们用 equal? 方法检验这一点,当两个对象相同时,equal? 返回true,反之是false:
      :house.equal?(:house) => true
      "house".equal?("house") => false

    3. 处理符号相比字符串,占用更少的资源
      比较典型的用法,就是在Rails中,用符号来指代散列中的参数名称:

       <% for book in @books-%>
       <%= link_to book.name, 
           :controller => "book",
           :action    => "show", 
           :id        => book.id   %>
       <% end -%>
      

    参考资料:http://hideto.iteye.com/blog/109697

    相关文章

      网友评论

          本文标题:ruby-字符串与符号

          本文链接:https://www.haomeiwen.com/subject/nwlohttx.html