我有一个看起来像这样的程序:
$offset = Point.new(100, 200);
def draw(point)
pointNew = $offset + point;
drawAbsolute(point)
end
draw(Point.new(3, 4));
Run Code Online (Sandbox Code Playgroud)
使用$offset看起来有点怪异.
在C中,如果我在任何函数之外定义某些东西,它会自动成为一个全局变量.为什么在Ruby中它必须$offset但不可能offset并且仍然是全局的?如果是offset,那么它是本地的吗?但是本地到哪里,因为它感觉非常全球化.
是否有更好的方法来编写上面的代码?$offset起初使用可能看起来有点难看.
更新:我可以将此偏移量放在class定义中,但如果两个或多个类需要使用此常量呢?在这种情况下,我还需要定义一个$offset吗?