博客
关于我
强烈建议你试试无所不能的chatGPT,快点击我
Ruby中 局部变量(local variable) 块变量(block variable) 与块局部变量(block local variable)...
阅读量:5903 次
发布时间:2019-06-19

本文共 808 字,大约阅读时间需要 2 分钟。

hot3.png

#局部变量与块变量的区别#块内部的命名空间和与块外部是共享的在块外部定义的局部变量在块中也可以继续使用#块变量与块外部的变量同名 Ruby会认为他们是两个变量x, y = 1, 1 #初始化局部变量x yary = [1, 2, 3]ary.each do |x| #将x做为块变量使用  y = x #将块变量x的值赋给局部变量yendp [x, y] #输出1和3 因为x的值没有发生改变,刚才改变的是块变量x
#当把y注释掉则会报错 NameError#说明在块内部定义的变量不能被外部访问#所以在块内部给局部变量赋值的时候一定要当心#块变量只能在块内部使用,不能覆盖外部的局部变量x = 1 #初始化局部变量x y# y = 1ary = [1, 2, 3]ary.each do |x| #将x做为块变量使用  y = x #将块变量x的值赋给局部变量yendp [x, y] #输出1和3 因为x的值没有发生改变,刚才改变的是块变量x
#但是Ruby提供了在块内定义局部变量的方法x, y, z = 0, 0, 0ary = [1, 2, 3]ary.each do |x; y| #定义块变量x 块局部变量y  y = x #对块局部变量y赋值  z = x #对局部变量z赋值  p [x, y, z]endp [x, y, z] #输出[0,0,3]#x输出0同理,y输出零是因为在块中输出的y是块局部变量#所以实际上局部变量y的值没有改变

总结

1 在块外部定义的局部变量在块内部是可以使用的。但是在块内部定义的变量不能被外部访问。

2 当块变量的名字与局部变量的名字相同时Ruby会认为他们是不同的变量,块变量只能在块内部使用不能覆盖外部的局部变量。

3 Ruby提供了块变量以外的块局部变量。

转载于:https://my.oschina.net/u/3544267/blog/1570467

你可能感兴趣的文章
POJ - 1062 昂贵的聘礼(Dijkstra)
查看>>
Java多态和动态绑定是如何实现的
查看>>
sql server 下载安装标记
查看>>
Android学习6—单元测试的使用
查看>>
js运算符(运算符的结合性)
查看>>
最长上升子序列问题
查看>>
C#中的析构函数
查看>>
idea 编译级别的设置
查看>>
内置对象Array的原型对象中添加方法
查看>>
12行代码的相关节点
查看>>
6大设计原则
查看>>
Github简介
查看>>
存储过程—导出table数据为inser sqlt语句
查看>>
Windows 7下Maven3.0.3的安装
查看>>
CISCO2691的OSPF点对点密文测评测试
查看>>
POJ 1661 Help Jimmy(递推DP)
查看>>
Node.js 中文学习资料和教程导航
查看>>
查找(AVL平衡二叉树)
查看>>
Javascript函数调用的四种模式
查看>>
用 Asterisk 搭建自己的免费 VoIP 服务器
查看>>