Project1

标题: 新手脚本问题 [打印本页]

作者: zxpopo    时间: 2007-7-6 01:40
提示: 作者被禁止或删除 内容自动屏蔽
作者: zxpopo    时间: 2007-7-6 01:40
提示: 作者被禁止或删除 内容自动屏蔽
作者: 永劫的咎人    时间: 2007-7-6 01:44
提示: 作者被禁止或删除 内容自动屏蔽
作者: kaze    时间: 2007-7-6 01:47
赋值例子:

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

[LINE]1,#dddddd[/LINE]系统信息:本贴由楼主认可为正确答案,66RPG感谢您的热情解答~




欢迎光临 Project1 (https://rpg.blue/) Powered by Discuz! X3.1