-
-
Notifications
You must be signed in to change notification settings - Fork 9
Intrinsic Procedure __not_equals__
IsaacShelton edited this page Mar 21, 2022
·
1 revision
The __not_equals__
function can be defined to allow additional types to be used with the inequality !=
operator.
func __not_equals__(a $A, b $B) bool {
}
where $A
and $B
are any valid types
import basics
struct UnorderedPair (first, second int)
func __equals__(a, b UnorderedPair) bool {
if a.first == b.first && a.second == b.second, return true
if a.first == b.second && a.second == b.first, return true
return false
}
func __not_equals__(a, b UnorderedPair) bool = !(a == b)
func toString(pair UnorderedPair) String {
return "(%, %)" % pair.first % pair.second
}
func main {
pair1 UnorderedPair
pair1.first = 8
pair1.second = 13
pair2 UnorderedPair
pair2.first = 13
pair2.second = 8
pair3 UnorderedPair
pair3.first = 7
pair3.second = 8
printComparison(pair1, pair2)
printComparison(pair2, pair1)
printComparison(pair1, pair3)
printComparison(pair3, pair1)
printComparison(pair2, pair3)
printComparison(pair3, pair2)
}
func printComparison(a, b UnorderedPair) {
printf("%S != %S => %b\n", toString(a), toString(b), a != b)
}
(8, 13) != (13, 8) => false
(13, 8) != (8, 13) => false
(8, 13) != (7, 8) => true
(7, 8) != (8, 13) => true
(13, 8) != (7, 8) => true
(7, 8) != (13, 8) => true