Enumの生成を制限する
Discordで話題に上がってたやつ。遊んでたら見つけた。
tarunon - 2018/04/26 午後4時2分
Enumを生成勝手に出来ないようにする方法って無いですよね structはinitをpublicにしなければ勝手に生成出来ないけど
protocol extensionで同名のstatic funcを生やすとambiguousでA.hoge
の呼び出しができなくなる。
enum A { case hoge(String) } protocol AP {} extension AP where Self == A { static var hoge: (String) -> Self { fatalError() } } extension A: AP {} A.hoge("aa") // error: ambiguous use of 'hoge'