gpt4 book ai didi

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

转载 作者:数据小太阳 更新时间:2023-10-29 08:24:04 26 4
gpt4 key购买 nike

我有一个这样的函数--

函数的名称是 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 block ,这就是为什么我无法弄清楚这是什么意思?

最佳答案

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

它通常用于表示返回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

关于ruby - ruby 函数定义中的问号是什么意思?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/13720214/

26 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com