包括红宝石的守卫

时间:2009-07-13 15:01:05

标签: ruby

在类似于

的ruby文件中添加include guard的惯用方法是什么?
#ifdef FOO_H
#define FOO_H
...

#endif

在C?

2 个答案:

答案 0 :(得分:11)

如果您使用require加载文件,它将只包含一次(假设您没有按不同的名称/路径加载相同的文件),因此通常Ruby文件不使用包含保护。

答案 1 :(得分:6)

正如Chris Jester-Young所说,require应该是你所需要的。也就是说,如果你想让自己成为一个,你可以使用一个简单的if或类似的“包含”守卫,例如:

unless defined? FooGuard
  FooGuard = true
  ... rest of code ...
end

您可以在if的正文中执行任何操作,包括定义类,方法等。