在ruby中,问号在函数的定义中是什么意思?

在ruby中,问号在函数的定义中是什么意思?,ruby,Ruby,我有一个这样的函数-- 函数名为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块中我看到了“?”,这就是为什么我无法理解这意味着什么??是方法名称中的有效字

我有一个这样的函数--

函数名为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块中我看到了“?”,这就是为什么我无法理解这意味着什么?

是方法名称中的有效字符

它通常用于表示返回
true
false

例如:

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


如果您想做更多的事情,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
模块你好
你给我的方法是什么
您好,发送(“这不是您的方法:(,对不起”)
#=>对不起,不是你的方法,兄弟
另外,
#方法?
不应该有任何副作用。爆炸(
,你说的
数组#排序!
的“排序爆炸”)表示你应该小心使用的方法(不一定是破坏性的)。它是破坏性的。它破坏(改变)调用它的原始数组。