Ruby 中的参数传递与值返回详解
1. 单向进出原则
在大多数现代面向对象语言(如 Java 和 C#)中,封装和信息隐藏并非严格执行。而在 Smalltalk 这一著名且有影响力的面向对象语言中,封装和信息隐藏是基本原则。即若将变量 x 传递给方法 y ,且 x 的值在 y 内部被改变,那么在方法外部无法获取 x 改变后的值,除非该方法明确返回此值。
通常,Ruby 遵循这一原则:参数传入方法,但方法内部的修改在未返回修改后的值时,外部无法访问。示例代码如下:
# hidden.rb
def hidden( aStr, anotherStr )
anotherStr = aStr + " " + anotherStr
return anotherStr.reverse
end
str1 = "dlrow"
str2 = "olleh"
str3 = hidden(str1, str2)
puts( str1 ) #=> dlrow
puts( str2 ) #=> olleh
puts( str3 ) #=> hello world
在上述代码中, str2 的字符串值被 hidden 方法的 anotherStr 参数接收,该参数被赋予新的字符串值并反转。但原始变量 s
超级会员免费看
订阅专栏 解锁全文
85

被折叠的 条评论
为什么被折叠?



