13
A
回答
21
=:=
的最大優點是它僅以與模式匹配相同的方式對同樣的術語返回true。所以你可以肯定他們是一樣的。 1
和1
是相同的術語,1
與1.0
不是。而已。如果您編寫像foo(A, B) when A =:= B -> A.
和bar(A, B) when A =:= B -> B.
這樣的功能,它們將表現相同。如果您使用==
它不會是相同的功能。它只是防止驚喜。例如,如果您創建了一些鍵/值存儲空間,那麼如果您使用密鑰1
存儲值,並且如果要求輸入密鑰1.0
則會得到該值。是的,==
有一點點性能損失,但最不重要的是驚訝。如果您打算比較相同的術語,只需使用=:=
和=/=
。僅當您打算比較數字時才使用==
和/=
。
0
Eshell V5.9.3.1(用^ G中止)
1> 1.0 == 1。
true
2> 1.0 =:= 1。
假
3>
看到了嗎? 時去「==」將轉院兩個元素插入相同的格式相匹配。 當「=:=」不,當兩個元素是相同類型和相同值將返回true。
相關問題
- 1. Erlang的Ports和RPC有什麼區別?
- 2. Erlang:「include_lib」和「include」有什麼區別?
- 3. 有什麼區別使用=和:在javascript
- 4. 在聲明變量時使用「」和「'和()有什麼區別?
- 5. 使用int [] []和int [,]有什麼區別?
- 6. 使用和extern有什麼區別?
- 7. 使用WorkflowInvoker和WorkflowApplication有什麼區別?
- 8. 使用MongoDB和Java時,document和dbObject有什麼區別?
- 9. Erlang/Yaws中的塊和非塊流有什麼區別
- 10. Erlang Web網關接口(EWGI)和Webmachine之間有什麼區別?
- 11. erlang,'catch 1 = 0'和'(catch 1 = 0)'有什麼區別?
- 12. ==和===有什麼區別?
- 13. ==和===有什麼區別?
- 14. 有什麼區別? :和||
- 15. ==和===有什麼區別?
- 16. '=='和'==='有什麼區別?
- 17. `&`和`ref`有什麼區別?
- 18. 有什麼區別:。!和:r!?
- 19. | 0和~~有什麼區別?
- 20. Appender和〜有什麼區別?
- 21. 別名和標籤有什麼區別? (一般和在git中)
- 22. ,和+連接時有什麼區別?
- 23. _url和_path在rails中使用路徑時有什麼區別
- 24. 在matlab中使用audioplayer時double和int16有什麼區別
- 25. 爲什麼在%中使用合併和%有什麼區別?
- 26. 有什麼區別`和$(Bash中有什麼區別?
- 27. 訪問和current_path和使用.should在rails中有什麼區別?
- 28. Microsoft.AspNet.WebApi.OData和Microsoft.Data.OData和Microsoft.AspNet.OData有什麼區別?
- 29. xtype和別名有什麼區別?
- 30. 對象和引用有什麼區別?
因此,最後,它是關於與浮點數進行比較,不是嗎?如果你有一個帶有整數和浮點數的術語,=:=保證精確的數學。但除了整數和浮點數之外,==和=:=之間沒有任何區別,是?我的意思是,與其他類型==同情是確切的。 – Ricardo 2012-03-21 12:43:04
@Ricardo:這是正確的。 – Fylke 2012-05-07 05:25:59
@Ricardo:是的,沒有。它可以被看作是玩這個詞,但想象這個例子:'A = {foo,[bar,1]},B = {foo,[bar,1.0]},true = A == B,false = A = := B'所以從技術上講,'A'和'B'並不明顯,操作數'=='和'=:=/2'的行爲不一樣,但你說得對,差異就是數字。這就是爲什麼我嚴格講我的答案中的術語。 – 2012-05-11 09:18:08