Gotcha (programming)
In programming, a gotcha is a valid construct in a system, program or programming language that works as documented but is counter-intuitive and almost invites mistakes because it is both easy to invoke and unexpected or unreasonable in its outcome.
Example
The classic gotcha in C/C++ is the constructif code;
It is syntactically valid: it puts the value of
b into a and then executes code if a is non-zero. Sometimes this is even intended. However most commonly it is a typo: the programmer probably meantif code;
which executes
code if a and b are equal. Modern compilers will usually generate a warning when encountering the former construct, depending on compiler options. To avoid this gotcha, some programming languages such include specific syntax for when this is desired behavior, such as Python's "walrus" operator. In languages where this specific syntax does not exist, there is a recommendation to keep the constants in the left side of the comparison, e.g. 42 x rather than x 42. This way, using = instead of will cause a compiler error. Many kinds of gotchas are not detected by compilers, however.