teratail header banner
teratail header banner
質問するログイン新規登録

回答編集履歴

1

fix

2017/08/19 11:36

投稿

mattn
mattn

スコア5030

answer CHANGED
@@ -11,6 +11,11 @@
11
11
  ```
12
12
 
13
13
  golang で `x.(SomeType)` とすると type assertion になるのですが、`switch tweet := x.(type)` に関しては type switch 構文という構文なので特に意識する必要なく、こういう構文だと思って下さい。
14
+ ちなみに type assertion とは interface x が () の中の型に変換する事を明示します。そのまま式として使用する事も出来ますが、本当に正しく型変換できたかどうかを2個目の戻り値でチェックできます。
15
+ ```
16
+ v, ok := x.(SomeType)
17
+ ```
18
+ x が SomeType であれば ok が true になります。気を付けないといけないのは、これが出来るのは x が interface である場合のみです。
14
19
 
15
20
  またこれを if 文で書き換えると以下になります。
16
21