【发布时间】:2010-11-05 18:09:26
【问题描述】:
我有一个看起来像这样的程序:
$offset = Point.new(100, 200);
def draw(point)
pointNew = $offset + point;
drawAbsolute(point)
end
draw(Point.new(3, 4));
$offset 的使用似乎有点奇怪。
在 C 语言中,如果我在任何函数之外定义一些东西,它会自动成为一个全局变量。为什么在 Ruby 中它必须是 $offset 但不能是 offset 并且仍然是全局的?如果是offset,那么是本地的吗?但是本地到哪里,因为它感觉非常全球化。
有没有更好的方法来编写上面的代码? $offset 的使用一开始可能看起来有点难看。
更新:我可以将此偏移量放在class 定义中,但如果两个或多个类需要使用此常量怎么办?在这种情况下我还需要定义$offset吗?
【问题讨论】:
-
来自 C 的您可能不知道这一点,但在 Ruby 中您不需要在行尾放置分号。你只需要使用 ;在同一行上分隔多个语句,例如"a = 5; b = 10"
标签: ruby global-variables