在下面的程序(用 irb shell 编写)中,我调用了一个hidden
类的方法,该方法Tester
接受两个参数,它们都是字符串,然后在修改它们后返回一个字符串。我得到了一个我没想到的输出。
我期望的是:
def hidden(aStr,anotherStr) # After the call aStr = suhail and anotherStr = gupta
anotherStr = aStr + " " + anotherStr
# After the above statement anotherStr = suhail gupta
return aStr + anotherStr.reverse
# After the above statement value returned should be suhailliahusatpug
# i.e suhail + "reversed string of suhailgupta"
end
# But i get suhailatpug liahus
实际代码:
1.9.3p194 :001 > class Tester
1.9.3p194 :002?> def hidden(aStr,anotherStr)
1.9.3p194 :003?> anotherStr = aStr + " " + anotherStr
1.9.3p194 :004?> return aStr + anotherStr.reverse
1.9.3p194 :005?> end
1.9.3p194 :006?> end
1.9.3p194 :007 > o = Tester.new
=> #<Tester:0x9458b80>
1.9.3p194 :008 > str1 = "suhail"
=> "suhail"
1.9.3p194 :009 > str2 = "gupta"
=> "gupta"
1.9.3p194 :010 > str3 = o.hidden(str1,str2)
=> "suhailatpug liahus"
这是为什么 ?与其他一些 OOP 语言(如Java )相比,Ruby中的问题是否不同?