1
の前にartist変数を代入することは可能ですか?Swift:switch case-let-whereの変数に代入
var artist
switch fullline {
case let path where path.hasPrefix("Monet"):
artist = "Monet"
case let path where path.hasPrefix("Cezanne"):
artist = "Cezanne"
default:()
}
閉鎖:
case let path where {() -> Bool in let artist = "Monet"; return path.hasPrefix(artist) }:
エラー:
() -> Bool' is not convertible to 'Bool'
コンテキスト:私は自由形式テックスのラインを持っている
tを人の目に見える一貫したテキストを出力するためにマッサージする を必要とするプレフィックスとしてアーティスト名を使用します。例えば
Monet : Snow at Argenteuil 02, 1874 Monet - Snow at Argenteuil, 1874, 3rd Floor Collections Monet, Claude - 1875, Snow in Argenteuil Cezzane - Vase of Flowers, 1880-81, print Cezzane, Paul 1900-1903 Vase of Flowers Cezzane - Vase with Flowers, 1895-1896
各アーティストのため を分類/詳細な処理を実行するコードの断片があります。したがって、処理ロジックはアーティストに依存する。
私はあなたがブール値が期待されているクロージャを与えている
switch fullline
hasPrefix(artist = "Monet")
-> code logic 1
get_birthday(artist)
hasPrefix(artist = "Cezzane")
-> code logic 2
get_birthday(artist)
'fullline'の例ですか? –
あなたはただ書くことができません:case let path.hasPrefix( "Monet")そしてwhere節を省略します –
これは最初のケースとどう違うのですか? – adev