我的方法如下:
def test(p1, p2)
logger.info 'calling test with p1=' + p1 + ' p2 = ' + p2
end
获得演员错误,我应该如何巧妙地做到这一点?
答案 0 :(得分:1)
您的强制转换错误可能是因为p1或p2不是字符串类型。 Ruby的字符串插值将为您处理:
def test(p1, p2)
logger.info "calling test with p1=#{p1} p2=#{p2}"
end
以下是它的工作原理:ruby对字符串中的任何变量(由to_s
表示)调用#{}
,将它们转换为字符串。 ruby中的每个对象都有这种方法,所以你不必担心它。我希望这有帮助!
更新:这是一个简单但有趣的问题,因为它不仅仅是满足眼睛(如变形金刚)。 Ruby执行此操作的方式实际上打开了您可以在自己的类中使用的功能的大门。我把答案变成了一篇博文,里面有代码示例和更详细的解释: