Avatar
Optionalを直接as?しようとすると怒られるので func cast<T, U>(from: U) -> T? { return from as? T } let z: Int?? = cast(from: String?.none) switch z { case .none: print("a") case .some(.none): print("b") // ココ case .some(.some): print("c") } で、やはりOptional.noneも同様にキャストが成功している。