簡體   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