用于确定字符串是否为有效变量名的方法



如果字符串是有效的变量名,有没有一个方法我可以调用,它会返回true,否则会返回false?

我注意到instance_variable_get在内部使用rb_is_instance_id,但我找不到可供调用的方法。

我不确定你说的是什么类型的变量。此函数将告诉您字符串是否是有效的实例变量名。Ruby可能对不同类型的变量有不同的规则。

def valid_variable_name?(var_name)
  Object.new.instance_variable_set ('@'+var_name).to_sym, nil
  true
rescue NameError
  false
end

puts valid_variable_name?('banana') # => true
puts valid_variable_name?("x00")   # => false
puts valid_variable_name?('#')      # => false
puts valid_variable_name?(':')      # => false
puts valid_variable_name?('@')      # => false
puts valid_variable_name?('/')      # => false
!!(defined?(string).to_s =~ /variable/)

最新更新