###疑問
swiftのswitch
構文において,case
のところでlet
(もしくはvar
)を使用すると,判別する対象を定数(変数)にとることができますが,なぜこんなことができる必要があるのでしょうか。(こんなことをする必要があるのでしょうか。)
例えば以下のようなものです。
swift
1switch foo { 2case let value: 3 print(value) 4default: 5 break 6}
これはprint(foo)
としても同じ事ができますよね?
似たものに,
swift
1if let foo = foo { 2 print(foo) 3}
という場合があり,ここではOptional Bindingというものがあるそうで,これに関しては意義は理解できたのですが,
switch
構文でも同じようなことをしようとすると,
swift
1switch foo { 2case let value?: 3 print(value) 4default: 5 break 6}
のように書けますが,これは
swift
1switch foo { 2case _?: 3 print(foo!) 4default: 5 break 6}
と同義のように感じます。
このように,let
に値を取る意義が理解できません。
こういう背景でこのような機能がある,こういうときにこのように書く必要がある,もしくは書いた方がいい,ということをご存じの型がいらっしゃいましたら,どうかご教授いただけますか。
もし他の言語でも同じ機能があり,それについての理由などをご存じの型がいらっしゃれば,そちらも教えていただきたいです。
どうぞよろしくお願いいたします。
回答1件
あなたの回答
tips
プレビュー
バッドをするには、ログインかつ
こちらの条件を満たす必要があります。
2017/12/25 14:10