首页 诗词 字典 板报 句子 名言 友答 励志 学校 网站地图
当前位置: 首页 > 教程频道 > 开发语言 > Ruby Rails >

ruby 步骤到底是按值传递还是按引用

2013-01-04 
ruby 方法到底是按值传递还是按引用def pref1(agr)agr.downcase!enda1 HELLOpref1(a1)puts #{a1} #

ruby 方法到底是按值传递还是按引用
def pref1(agr)   
   agr.downcase!
end

a1 = 'HELLO'
pref1(a1)
puts "#{a1}" #输出 hello

def pref2(agr)
    agr.downcase
end


a2 = 'PREF2'
pref2(a2)
puts "#{a2}" #输出 PREF2

def pref3(a,b)
    a,b = b,a
end

a,b = 1,2
pref3(a,b)
puts a,b #输出 1,2

def pref4(agr)
    agr.replace('aaaaa')
end

a4 = 'a'
pref4(a4)
puts a4 #输出 aaaaa

 

 

 

ruby 函数到底是按值传递还是按引用???
[解决办法]
传递, 因为值的范围只作用方法内。

引用, 是全局变量。
[解决办法]
一般的scalar类型是按值传递的,hash和array是按引用传递,在方法中修改后也会改变原来的内容
myList = %w [ 1 2 3]

def swap(list)
list.reverse!
end

swap(myList)
[解决办法]
downcase   downcase!方法不一样。 一切都是对象。自然都是按引用传递的啊。

热点排行