2

我有这样的功能——

函数的名称是 seld.is_dl,它接受路径参数。我的问题是?函数定义中的这个符号表示什么。

def self.is_dl?(path)

  path = File.basename(path)

  if path =~ /setup.exe/i

    return false

  else

    return true

  end

end

我是 Java 开发人员,我见过“?” 如果主要是 If-ELSE 块,这就是为什么我无法弄清楚这是什么意思?

4

1 回答 1

7

?是方法名称中的有效字符。

它通常用于表示返回truefalse

例如:

注意:!也是一个有效字符。它通常用于表示“破坏性”方法


如果您想加倍努力,Ruby 在技术上允许任何字符串作为方法名称。奇数需要define_method()send()调用,但形式上没有限制。

module Hello

  class << self
    define_method "this is my method :)" do |foo|
      puts "you gave my method #{foo}"
    end

    define_method "this isn't your method :(, sorry" do
      puts "sorry, not your method, bro"
    end
  end

end

Hello.send("this is my method :)", "candy")
#=> you gave my method candy

Hello.send("this isn't your method :(, sorry")
#=> sorry, not your method, bro
于 2012-12-05T09:44:55.783 回答