Ruby实例变量范围问题
发布时间:2020-12-16 22:59:00 所属栏目:百科 来源:网络整理
导读:我来自C和JAVA,其中Scope有全球或本地. 我现在正在学习ruby-on-rails和ruby,有本地,实例和全局.直到现在我才真正听说过这个例子. 有或没有rails,实例变量的理解和用法是什么? Global = Variable across all objects shareInstance = Variable inside of the
我来自C和JAVA,其中Scope有全球或本地.
我现在正在学习ruby-on-rails和ruby,有本地,实例和全局.直到现在我才真正听说过这个例子. 有或没有rails,实例变量的理解和用法是什么? Global = Variable across all objects share Instance = Variable inside of the object Local = Variable inside of the object 我想我的实例和当地有点混合在一起. @ham ham 这两个不同的变量对吧?有时我在Rails中感到困惑,因为他们使用的东西可以像@something和:某些东西.这是为什么? 因为我使用rails框架,所以我理解实例变量是视图可以访问的东西. 有人可以澄清这些变量吗? 解决方法
Ruby中的实例变量与Java中的实例变量类似,是对象状态的一部分:
class MyObject def set_x(x) @x = x end def get_x @x end end 等效的Java代码: class MyObject { private Object x; void setX(Object x) { this.x = x; } Object getX() { return x; } } 而局部变量只是一个只能在这个特定方法中可访问的变量: def doIt x = 3; # x not accessible from outside of doIt puts x end void doIt() { int x = 3; // same in Java System.out.println(x); } 编辑 MyObject o = new MyObject(); o.setX(3); // integer 3 is now stored in variable 'x' of object 'o' // I can return any time later and get that value back by 'o.getX()' (编辑:李大同) 【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容! |