ruby可选参数,如果改变,调用者的效果?

ruby可选参数,如果改变,调用者的效果?,第1张

概述考虑 ruby中的以下代码,假设我从某个地方调用了prestart: def tester(process_name, *host_list) hosts = [] hosts = host_list[0] hosts[0] = nilenddef prestart(process_name, *host) host_list = ['192.168.1.1', '192.1 考虑 ruby中的以下代码,假设我从某个地方调用了prestart:

def tester(process_name,*host_List)  hosts = []  hosts = host_List[0]  hosts[0] = nilenddef prestart(process_name,*host)  host_List = ['192.168.1.1','192.168.1.2']   puts host_List.inspect  # -> ['192.168.1.1','192.168.1.2']  tester(process_name,host_List)  puts host_List.inspect  # -> [nil,'192.168.1.2']  abortend

怎么变成零?这是ruby的工作原理吗?如果是,我如何确保它不会影响来电者?

解决方法 数组是对象,因此通过引用过去.如果要在不影响原件的情况下进行更改,则需要通过调用.dup来复制它.您可以在调用者或被调用的方法中执行此 *** 作. 总结

以上是内存溢出为你收集整理的ruby可选参数,如果改变,调用者的效果?全部内容,希望文章能够帮你解决ruby可选参数,如果改变,调用者的效果?所遇到的程序开发问题。

如果觉得内存溢出网站内容还不错,欢迎将内存溢出网站推荐给程序员好友。

欢迎分享,转载请注明来源:内存溢出

原文地址: http://outofmemory.cn/langs/1274249.html

(0)
打赏 微信扫一扫 微信扫一扫 支付宝扫一扫 支付宝扫一扫
上一篇 2022-06-08
下一篇 2022-06-08

发表评论

登录后才能评论

评论列表(0条)

保存