summaryrefslogtreecommitdiffhomepage
diff options
context:
space:
mode:
authorMax Schumacher <maximilianbschumacher@gmail.com>2020-01-31 09:47:30 +0100
committerGitHub <noreply@github.com>2020-01-31 09:47:30 +0100
commit2c3f9298aac20b6080c8bf4ed4b79238243f917c (patch)
tree2bd03485303bd6455d90e3ecff7ba5bc7d193e9d
parentde1cc913331370896d205e2877af20b1e4ed6b9a (diff)
parenta7242df7d7f49ee2a7440a5a10f203d64e481f24 (diff)
Merge pull request #3833 from MaerF0x0/master
go/en: add type switch and multiple cases
-rw-r--r--go.html.markdown16
1 files changed, 15 insertions, 1 deletions
diff --git a/go.html.markdown b/go.html.markdown
index 4fc155b5..49f1ade4 100644
--- a/go.html.markdown
+++ b/go.html.markdown
@@ -12,6 +12,7 @@ contributors:
- ["Alexej Friesen", "https://github.com/heyalexej"]
- ["Clayton Walker", "https://github.com/cwalk"]
- ["Leonid Shevtsov", "https://github.com/leonid-shevtsov"]
+ - ["Michael Graf", "https://github.com/maerf0x0"]
---
Go was created out of the need to get work done. It's not the latest trend
@@ -196,7 +197,7 @@ func learnFlowControl() {
x := 42.0
switch x {
case 0:
- case 1:
+ case 1, 2: // Can have multiple matches on one case
case 42:
// Cases don't "fall through".
/*
@@ -208,6 +209,19 @@ func learnFlowControl() {
default:
// Default case is optional.
}
+
+ // Type switch allows switching on the type of something instead of value
+ var data interface{}
+ data = ""
+ switch c := data.(type) {
+ case string:
+ fmt.Println(c, "is a string")
+ case int64:
+ fmt.Printf("%d is an int64\n", c)
+ default:
+ // all other cases
+ }
+
// Like if, for doesn't use parens either.
// Variables declared in for and if are local to their scope.
for x := 0; x < 3; x++ { // ++ is a statement.