13
A
答えて
21
=:=
の最大の利点は、パターンマッチングと同じ方法で同じ用語に対してのみ真を返すことです。あなたは彼らが同じであることを確認することができます。 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(abort with^G)
1> 1.0 == 1。
true
2> 1.0 =:= 1。
偽
3>
はそれを参照してください? それが一致するように同じ形式に2つの要素をtranferます「==」に行くとき。 "=:="の場合、2つの要素が同じ型で同じ値がtrueを返す場合は使用しないでください。
関連する問題
- 1. aspxの<%:と<%=と<%#の違いは何ですか?
- 2. Cの<と<<の違いは何ですか?
- 3. <<< EODをPHPで使用するとは何ですか?
- 4. cout << coutとcout <<とcoutの違いは何ですか?
- 5. 違いは<?php ... ?>と<? ... ?>を使用して何
- 6. 1 << 0とは何ですか?
- 7. <article>,<section>,<figure>,<header>,<footer>,<nav>のようなHTML5タグを使用する利点は何ですか?
- 8. C言語の(1 << OCIE0A)とは何ですか?
- 9. <% - tag v/s <%= tagをejsで使用する利点は何ですか?
- 10. &と&&、|の違いは何ですか? || R?</p> <pre><code>&, && |, || </code></pre> <p>用法の違いを何:
- 11. ASP.NET MVCで "<%="、 "<%:" "<%#"の違いは何ですか?
- 12. PHP <?= <?php echo違いは何ですか?どちらを使うのが良いですか?私はまだ <pre><code><?Php echo ''; </code></pre> <p>適切な、より良いものを使用することです</p>を使用していながら
- 13. <<と+ =の違いは何ですか?
- 14. Swiftでは+++と<<<は何ですか?
- 15. Ninjectコンテキストは、私は一般的なインタフェース<code>IRepository<T></code>との2つの実装<code>xrmRepository<T></code>と<code>efRepository<T></code></p> <p>を持っているワット/オープンジェネリック
- 16. <html:submitタグと<input type = "submit"の具体的な違いは何ですか?
- 17. コンストラクタ関数の作成後にプロトタイプを使用する利点は何ですか?あなたは</p> <pre><code>var SomeClass = function(){ this.a= ""; this.b= ""; } </code></pre> <p>のようなコンストラクタ関数を使用している場合
- 18. <chrono>と<ctime>の違いは何ですか?
- 19. <p></p>、一般的なリストに不思議
- 20. NHibernate Query <>とQueryOver <>の違いは何ですか?
- 21. ASP.NET MVCの<%#と<%=の違いは何ですか?
- 22. Task <>とIAsyncOperation <>の違いは何ですか
- 23. <f:viewParam>と<f:param>の違いは何ですか?
- 24. <tiles:add>と<tiles:put>ストラットの違いは何ですか?
- 25. <?の違いは何ですか?エコー __();と<= __();
- 26. <?php ?>と<? ?>の違いは何ですか?
- 27. <TargetFramework>と<RuntimeFrameworkVersion>の違いは何ですか?
- 28. PHPで "<<< SQL"とは何ですか?
- 29. bashの ">"と "&>"の違いは何ですか?いくつかのプログラムを実行しながら、私が管理を使用することができ、</p> <ul> <li>0(STDIN)</li> <li>1(STDOUT)</li> <li>2(STDERR)</li> </ul> <p>ので:bashで
- 30. <_wmi_namespace:<COMObject <unknown>>とは何ですか?
だから、最後は浮動小数点数とintを比較することです。 intと浮動小数点の間にある項がある場合、=:=は正確な数学を保証します。しかし、intと浮動小数点を除けば、==と=:=の間にそれ以上の違いはありません。他のタイプでは、==思いやりは厳密です。 – Ricardo
@リカルド:それは正しいです。 – Fylke
@リカルド:はい、いいえ。これは言葉で遊んでいると見ることができますが、この例を想像してみましょう:A = {foo、[bar、1]}、B = {foo、[bar、1.0]}、true = A == B、false = A = := B'技術的には、AとBは明らかに数字ではなく、オペランド '=='と '=:=/2'は同じ動作をしませんが、あなたは正しいです。それは私が厳密に私の答えの中で言葉を話している理由です。 –