gpt4 book ai didi

ruby - 可以在 Ruby 中评估为 false(模糊逻辑)的 float 子类

转载 作者:太空宇宙 更新时间:2023-11-03 17:04:04 24 4
gpt4 key购买 nike

我需要一个可以表示概率的类。它可以表示为 0 和 1 之间的 float ,任何低于 0.5 的值都应评估为 false。 (或者它可以在 1 和 -1 之间,任何负数都是错误的)

p = A.probability() 
puts p # will output 0.3
if(p)
puts 'success'
else
puts 'failure'
end
# will outputs 'failure'

从这里post这似乎表明这是可能的:每个对象都有一个 boolean 值...Ruby 中的大多数对象都有一个 boolean 值 true。只有两个对象的 boolean 值为 false。 只是我需要以某种方式设置此 boolean 值。那么这可能吗?

最佳答案

我想做类似的事情,但遗憾的是这在 Ruby 中是不可能的。

仅有的两个 boolean 值为 false 的对象是 false 本身和 nil。几周前,我与 Brixen 进行了一次互联网聊天 (IRC) 讨论。 ,rubinius 的主要开发者之一,他解释得很好。我的理解是,当 Ruby 决定一个对象是否为真时,它不会调用对象上的任何方法(即发送任何消息),它只是查看指向对象的指针以查看指针本身是否正确等于 false 或 nil。由于它不调用对象的任何方法,因此您无法更改行为。

你能做的最好的事情是这样的:

p = A.probability() 
puts p # => 0.3
if p.to_bool
puts 'success'
else
puts 'failure'
end

关于ruby - 可以在 Ruby 中评估为 false(模糊逻辑)的 float 子类,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/8005562/

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