2024-04-25 05:38:49 发布
网友
在Python中,如果使用bool函数,则可以确定表达式计算结果的布尔值。例如:
bool
bool(1) #=> True
Ruby中是否存在这样的构造?我似乎找不到证据证明这是真的。我现在不得不使用等价测试来确定布尔值,我想知道是否有更方便的方法来实现这一点。你知道吗
如果希望1 == true和0 == false,则应显式比较这些值,例如:
1 == true
0 == false
if x == 1 # do something end
这是因为,在Ruby中,只有false和nil是错误的。其余的计算结果为true。你知道吗
false
nil
true
换句话说:
def to_bool(x) !!x end to_bool(1) #=> true to_bool(0) #=> true to_bool("0") #=> true to_bool("1") #=> true to_bool(Object.new) #=> true to_bool(nil) #=> false
如果您知道将使用哪种类型,可以尝试在Ruby中模仿Python的逻辑。你知道吗
在Ruby中,空列表、哈希或字符串是真实的,因此您需要检查它们是否为空:
![].empty? # => false ![3].empty? # => true !"".empty? # => false !"foo".empty? # => true
同样,您可以检查整数是否不为零:
0 != 0 #=> false 1 != 0 #=> true 3.14 != 0 #=> true
经典总是有的
!!a
这也适用于JavaScript、C++和(使用^ {CD1>}而不是^ {< CD2>})Python。你知道吗
请记住,Ruby对真实性的概念与Python不同。在Python中,很多“空”对象都是虚假的,自定义类的真实性可以通过一个神奇的方法来确定。在Ruby中,只有nil和false是虚假的,所有其他值(包括数字、字符串、列表和任何用户定义的类)都是真实的。你知道吗
如果希望
1 == true
和0 == false
,则应显式比较这些值,例如:这是因为,在Ruby中,只有
false
和nil
是错误的。其余的计算结果为true
。你知道吗换句话说:
如果您知道将使用哪种类型,可以尝试在Ruby中模仿Python的逻辑。你知道吗
在Ruby中,空列表、哈希或字符串是真实的,因此您需要检查它们是否为空:
同样,您可以检查整数是否不为零:
经典总是有的
这也适用于JavaScript、C++和(使用^ {CD1>}而不是^ {< CD2>})Python。你知道吗
请记住,Ruby对真实性的概念与Python不同。在Python中,很多“空”对象都是虚假的,自定义类的真实性可以通过一个神奇的方法来确定。在Ruby中,只有
nil
和false
是虚假的,所有其他值(包括数字、字符串、列表和任何用户定义的类)都是真实的。你知道吗相关问题 更多 >
编程相关推荐