包括红宝石的守卫

Dav*_*hme 4 ruby

在包含类似于的ruby文件中添加include guard的惯用方法是什么?

#ifdef FOO_H
#define FOO_H
...

#endif
Run Code Online (Sandbox Code Playgroud)

在C?

Chr*_*ung 11

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


Log*_*ldo 6

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

unless defined? FooGuard
  FooGuard = true
  ... rest of code ...
end
Run Code Online (Sandbox Code Playgroud)

您可以在其中执行任何操作if,包括定义类,方法等.