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