确定字符串是否为Ruby保留字的内置方法?

| Ruby是否内置一些功能来确定字符串是否为保留字?像
\"next\".is_keyword?
?     
已邀请:
        我能想到的唯一方法是使用您知道的所有关键字加载数组。
class String
  def is_keyword?
    %w{__FILE__ __LINE__ alias and begin BEGIN break case class def defined? do else elsif end END ensure false for if in module next nil not or redo rescue retry return self super then true undef unless until when while yield}.include? self
  end
end
\"foobar\".is_keyword? # => false
\"for\".is_keyword? # => true
以供参考: 我知道这不是内置方式,这只是我能想到的唯一方式。不要为此而投票。 我包括的列表是真实关键字的列表。
public
protected
和朋友不是真正的关键字,只是在模块或类的创建过程中调用的重要方法的名称。您可以将其视为Ruby DSL的元素。     
        据我所知,“ 3”并不是一个保留字。它只是重要方法的名称。 http://wiki.rubyonrails.org/rails/pages/reservedwords列出了您无法使用的保留字(其中一些仅在您使用Rails或其依赖项时才适用),以及可能引起问题的方法名称。 如果这还不能完全回答您的问题,您能否更全面地定义您是否对方法名或变量名感兴趣,以及是否担心根本无法使用的单词或单词可能会导致其他问题出错?     
        使用Ruby gem ruby​​keyword。它不仅可以识别关键字。
string.keyword?
告诉您是否使用它的关键字。
string.define
给出关键字的定义。也有
string.example
。     
        如果您要在其中实现一个名为“ protected”的方法的类,则在定义该方法之前,请创建该类的实例并调用   实例方法 这将向您显示为该类继承的所有方法,并且如果存在\“ protected \”,那么它将被ruby保留。     

要回复问题请先登录注册