1.2 KiB
Title |
---|
The ?? operator aka the Null Coalescing Operator |
If are familiar to the use of ternary operators, you must have encountered several situations like this one :
:::csharp string pageTitle = getTitle() ? getTitle() : "Default Title";
You would want to call getTitle() only once, but then you wouldn't have a simple one-lined initialization of you variable. Actually there is a simple solution that most langages implements, the null coalescing operator; let's replace the above C# code with this one:
:::csharp
string pageTitle = getTitle() ?? "Default Title";
Now you have the same behaviour, but with only one call to your
function. The syntax is simple :
possibly_null_value ?? value_if_null
the "??" operator is
implemented in C# since C# 2.0. You also have it in C and C++ as a GNU
extension using the "?:" operator :
:::cpp
string pageTitle = getTitle() ?: "Default Title";
You can get the same behaviour in javascript using the "||" operator :
:::javascript
pageTitle = getTitle() || "Default Title";