在下面的方法中,
!!
表示什么意思?def include?(record)
!!@association.include?(record)
end
!!
表示什么意思?def include?(record)
!!@association.include?(record)
end
它将变量转换为布尔类型并确定其真值或假值
例如:
# Numbers...
!!1 # => true
!!0 # => true
# Numbers as strings...
!!'1' # => true
!!'0' # => false
# Truthy strings (case insensitive)...
!!'true' # => true (alias: 't')
!!'false' # => false (alias: 'f')
!!'yes' # => false (alias: 'y')
!!'no' # => false (alias: 'n')
# Booleans...
!!true # => true
!!false # => false
# Nil...
!!nil # => false
它可以帮助您获得布尔结果。
例如:
a = nil
!a
#=> true
!!a
#=> false
同样地
a = 1
!a
#=> false
!!a
#=> true
@assication.include?(record)
返回nil
,那么它将被转换为false
。
!!
将“真值”(除了nil
和false
之外的所有值)转换为true
,并将“假值”(nil
或false
)转换为false
。!!x
意思是!(!x)
。如果x
是真值,则!x
是false
;如果x
是假值,则!x
是true
。第一个!
将false
翻转为true
,将true
翻转为false
。例如,!!7 => !(!7) => !false => true
和!!nil => !(!nil) => !true => false
。 - Cary Swoveland