繁体   English   中英

`?!` 的运算符是什么?

[英]what's the operator for `!!`?

在 hexpm 项目的controller_helpers.ex中。 logged_in? function 使用!! . 这个操作有什么意义?

  def logged_in?(conn) do
    !!conn.assigns[:current_user]
  end

由于所讨论的编程语言是 Elixir,因此双感叹号 (:!) 具有以下含义:

它强制执行 boolean 值

  • ! 意味着不

  • !! 表示不强求真假

它是一元运算符的双重应用。

文档

首先我们来看看! operator

非严格非 ( ! ) 的工作方式与not运算符相同,但不期望参数是 Boolean。

因此,如果我们有一个变量life = 43 ,那么!life将给出 false。 如果我们有life = nil ,那么!life将给出 true。 此运算符只是将给定值转换为反转的 boolean 值。

而现在!!

其实!! 不是运算符,它只是! 运算符使用了两次。 通过添加另一个! 我们只是反转第一个的结果! 操作员。

life = 42
    
!life  // Inverted Boolean (false)
!!life // Non-inverted Boolean (true)

end = nil

!end  // Inverted Boolean (true)
!!end // Non-inverted Boolean (false)

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM