![]() Otherwise, structural equality is used, which disagrees with the standard so that NaN is equal to itself, NaN is considered greater than any other element, including POSITIVE_INFINITY, and -0.0 is not equal to 0.0. When an equality check operands are statically known to be Float or Double (nullable or not), the check follows the IEEE 754 Standard for Floating-Point Arithmetic. ![]() For values represented by primitive types at runtime (for example, Int), the = equality check is equivalent to the = check. a = b evaluates to true if and only if a and b point to the same object. Referential equality is checked by the = operation and its negated counterpart !=. Structural equality has nothing to do with comparison defined by the Comparable interface, so only a custom equals(Any?) implementation may affect the behavior of the operator. Functions with the same name and other signatures, like equals(other: Foo), don't affect equality checks with the operators = and !=. ![]() To provide a custom equals check implementation, override the equals(other: Any?): Boolean function. Note that there's no point in optimizing your code when comparing to null explicitly: a = null will be automatically translated to a = null. You can’t just assign null to them, as we tried above. ![]() All of the types that we’ve used so far in this series - such as String, Int, and Boolean - require you to assign an actual value. If a is not null, it calls the equals(Any?) function, otherwise ( a is null) it checks that b is referentially equal to null. In Kotlin, we use different types to indicate whether a variable can or cannot be set to null. ![]()
0 Comments
Leave a Reply. |
AuthorWrite something about yourself. No need to be fancy, just an overview. ArchivesCategories |