相关疑难解决方法(0)

__str__和__repr__之间的区别?

之间有什么区别__str____repr____str__

python repr magic-methods

2545
推荐指数
21
解决办法
61万
查看次数

Ruby 1.9 Array.to_s的行为有何不同?

我写了一个快速的小应用程序,它利用代码与某些关键词的基本文件,替换为关键字的文件,并输出与替换关键字的新文件.

当我使用Ruby 1.8时,我的输出看起来很好.现在使用Ruby 1.9时,我替换的代码中包含换行符而不是换行符.

例如,我看到类似的东西:

["\r\nDim RunningNormal_1 As Boolean", "\r\nDim RunningNormal_2 As Boolean", "\r\nDim RunningNormal_3 As Boolean"]
Run Code Online (Sandbox Code Playgroud)

代替:

Dim RunningNormal_1 As Boolean
Dim RunningNormal_2 As Boolean
Dim RunningNormal_3 As Boolean
Run Code Online (Sandbox Code Playgroud)

我使用替换的散列{"KEYWORD" => ["1","2","3"]}和替代的线的阵列.

我用这个块来完成更换:

resultingLibs.each do |x|
  libraryString.sub!(/(<REPEAT>(.*?)<\/REPEAT>)/im) do |match|
    x.each do |individual|
      individual.to_s 
    end
  end
end
#for each resulting group of the repeatable pattern,
#  
#Write out the resulting libs to a combined string
Run Code Online (Sandbox Code Playgroud)

我的预感是我打印出数组而不是数组中的字符串.有关修复的任何建议.当我使用puts调试和打印我替换的字符串时,输出看起来是正确的.当我使用to_s方法(这是我的应用程序将输出写入输出文件的方式)时,我的输出看起来不对.

修复会很好,但我真正想知道的是Ruby 1.8和1.9之间的变化导致了这种行为.to_s方法在Ruby 1.9中以某种方式改变了吗?

*我对Ruby缺乏经验

ruby string ruby-1.9

16
推荐指数
1
解决办法
5581
查看次数

什么是ruby中的__repr__等价?

__repr__python 的功能很自然,因为在自动使用print OBJECT时会调用它.

它有红宝石等价吗?我认为这是to_s,但是,我有p OBJECT似乎没有调用to_s方法.

添加

我弄错了,p OBJECT似乎调用to_s方法如下.我从我对其他问题的答案中得到了一些提示.- Ruby的to_s方法问题(来自Axe第2版)

# Sample code from Programing Ruby, page 24
class Song
  def to_s
    "Song"
  end
end

class Songson < Song
  def to_s
    super + "<Songson>"
  end
end

song = Songson.new()
p song
Run Code Online (Sandbox Code Playgroud)

ruby python

12
推荐指数
1
解决办法
3556
查看次数

Ruby中的x.inspect和x.to_s之间的区别?

可能重复:
为什么这个Ruby对象有两个to_s和inspect方法做同样的事情?或者,似乎如此

在Ruby中:如果x是某个变量,使用x.inspect和使用x.to_s之间有区别吗?两种方法有什么区别?

ruby

4
推荐指数
1
解决办法
2997
查看次数

标签 统计

ruby ×3

python ×2

magic-methods ×1

repr ×1

ruby-1.9 ×1

string ×1