微信公众号搜"智元新知"关注
微信扫一扫可直接关注哦!

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

如何解决确定字符串是否为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保留。     

版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 dio@foxmail.com 举报,一经查实,本站将立刻删除。