==!
doesn't exist as such. It's a somewhat cryptic notation of == !
As spaces don't matter in those operations, you could just as easily write a --> b
, which evaluates to a-- > b
, but will look strange.
So, as to the question: "a" ==! " "
will be parsed to "a" == !" "
. Negation of a string is covered by casting, meaning any string but "0"
and " "
is, when casted, true
.
Thus, the expression "a" == !" "
will get transferred:
"a" == !" "
"a" == !false
"a" == true
And, as string "a"
is not the same as bool true
, this evaluates the whole expression to false
.
So, what's the moral of the story? Don't let yourself be confused by missing or wrong placed spaces! :)