赞 | 0 |
VIP | 33 |
好人卡 | 0 |
积分 | 1 |
经验 | 5604 |
最后登录 | 2017-9-20 |
在线时间 | 15 小时 |
Lv1.梦旅人 泽
- 梦石
- 0
- 星屑
- 50
- 在线时间
- 15 小时
- 注册时间
- 2007-2-18
- 帖子
- 2464
|
赋值例子:
foo = bar
foo[0] = bar
foo.bar = baz
语法:
变量 '=' 表达式
常量 '=' 表达式
表达式 '['表达式..']' '=' 表达式
表达式 '.' 标识符 '=' 表达式
我们使用赋值表达式向变量等对象进行赋值。赋值也可以用作局部变量和常数的声明。赋值表达式的左边必须是下列之一。
变量
变量 '=' 表达式
若左边是变量的话,就将表达式的计算值代入其中。
数组调用
表达式1 '[' 表达式2 ... ']' '=' 表达式n
先计算表达式 1 得到一个对象,再把从表达式 2 到表达式 n 作为参数,来调用该对象的“[]=”方法。
class C
def initialize
@ary = [0,1,2,3,4,5,6,7]
end
def [](i)
@ary[i * 2]
end
def []=( i, v )
@ary[i * 2] = v
end
end
c = C.new
p c[3] # 变成 c.[]( 3 ), 结果为6
p c[3] = 1 # 变成 c.[]=(3,1),结果为1
属性调用
表达式1 '.' 标识符 '=' 表达式2
计算表达式 1 得到一个对象,再以表达式 2 为参数来调用该对象的“标识符=”方法。
class C
def foo
@foo
end
def foo=( v )
@foo = v
end
end
c = C.new
c.foo = 5 # 变成 c.foo=( 5 )
p c.foo # => 5
还可以使用 attr_accessor 来定义属性。
class C
attr_accessor :foo
end
c = C.new
c.foo = 5 # 变成 c.foo=( 5 )
p c.foo # => 5
系统信息:本贴由楼主认可为正确答案,66RPG感谢您的热情解答~ |
|