I found out some days ago that Java 12 comes with switch expressions. Doing some googling it seems that C# 8 could also get them added.
The feature seems rather nice (I directly copy/paste the Java sample)
int value = switch (number) {
case "ONE" -> 1;
case "TWO" -> 2;
case "THREE" -> 3;
};
I immediately wondered if JavaScript was planning to incorporate this feature, but some googling brought no answers. Well, giving it a second thought, the thing is that with JavaScript's clean and concise syntax we can almost the same by using a dispatch table:
let numStr = "TWO";
let num = {
"ONE": 1,
"TWO": 2,
"THREE": 3
}[numStr];
It's almost the same, just the switch condition is moved from the beginning to the end of the expression. Doing the same in C# is a bit more verbose mainly because of having to write the type:
var numStr = "TWO";
int item = new Dictionary<string, int>{
["ONE"]= 1,
["TWO"]= 2,
["THREE"]= 3
}[numStr];
Notice that we're using the Dictionary initializer syntax incorporated in C# 6.
By the way, I've never thought about the small performance differences between a switch statement and dispatch table, so this StackOverflow question has been a nice reading.
No comments:
Post a Comment