【问题标题】:Interpret \n within irb or script/console在 irb 或脚本/控制台中解释 \n
【发布时间】:2008-10-23 09:12:34
【问题描述】:

当使用object.methods.sort.to_yaml 之类的东西时,我想让 irb 解释 \n 字符而不是打印它们。

我目前得到以下输出:

--- \n- "&"\n- "*"\n- +\n- "-"\n- "<<"\n- <=>\n ...

我想要的是类似这样的:

--- 
 - "&"
 - "*"
 - +
 - "-"
 - "<<"
 - <=>

这可能吗?我可以调用另一种方法来解释字符串吗?

【问题讨论】:

    标签: ruby-on-rails ruby


    【解决方案1】:

    在你的输出前加上puts:

    > puts object.methods.sort.to_yaml
    --- 
     - "&"
     - "*"
     - +
     - "-"
     - "<<"
     - <=>
     => nil
    

    【讨论】:

    • 非常感谢 - 这正是我想要的 :)
    • 默认情况下,irb 调用inspect 方法来打印对象,对于字符串,它会转义特殊字符,例如\n。打印并放置解释特殊字符并在非字符串上调用 to_s。
    【解决方案2】:

    另一个选项是使用 noinspect 选项启动 irb:

    C:\>irb --noinspect
    irb(main):001:0> Object.methods.to_yaml
    => ---
    - instance_method
    - yaml_tag_read_class
    .....
    - constants
    - is_a?
    
    irb(main):002:0>
    

    【讨论】:

      【解决方案3】:

      Ruby yaml 库包含“y”命令,该命令负责 yamlizing 和格式化:

      y object.methods.sort
      

      【讨论】:

        【解决方案4】:

        这只是 irb -- 我认为您无法控制 return 格式。

        您仍然可以使用printputs 来随意显示它。

        【讨论】:

          猜你喜欢
          • 2011-02-11
          • 2013-06-08
          • 1970-01-01
          • 2012-05-03
          • 1970-01-01
          • 1970-01-01
          • 2017-06-13
          • 1970-01-01
          • 1970-01-01
          相关资源
          最近更新 更多