2008年6月20日

相等

欲判斷兩個值是否相等,利用「=」op!或者「equal?」action!,例如:

>> 1 = 1
== true
>> equal? 1 1
== true
>> "ABC" = "abc"
== true

即使型別不同,值也可能相等,例如:

>> 1 = 1.0
== true

上面的1是integer!,而1.0是decimal!,兩者型別不同。

如果要求嚴格一點,必須值和型別都一致,才能算相等,這時候使用「==」op!或「strict-equal?」action!。例如:

>> 1 == 1.0
== false
>> strict-equal? 1 1.0
== false

判斷兩個值是否不相等,利用「<>」op!或「!=」op!,或者「not-equal?」action!,例如:

>> 1 <> 2
== true
>> 1 != 2
== true
>> not-equal? 1 2
== true

判斷兩個值不相等「且」型別也不一致,利用「strict-not-equal?」action!(沒有對應的op!可用)。目前「strict-not-equal?」有bug。

=?用來判斷兩個參考(reference)是否一樣(identical),只有用在function, Series, object等參考型別,才有意義。用在其他型別時,相當於「=」。「=?」如果一邊是參考型別,另一邊是其他型別(非參考),則一定為false。

沒有留言: