私はコンバータクラスを持っていますが、Tはオプションのタイプにすることができます。Swiftオプションのテンプレートタイプ予期しないパラメータの振る舞い
印刷です:
val: nil
Optional<String>
val is nil: false
はなぜnil
を印刷しているとの条件val == nil
はfalse
ですかnilの値を変換しようとi'amは
class Converter<T>
{
init(){}
func convertVal(_ val: T) -> T
{
print("val: \(val)")
print(type(of: val))
print("val is nil: \(val == nil)")
return val
}
}
let firstStr: String? = nil
let converter = Converter<String?>()
var str = converter.convertVal(firstStr)
、ヴァル 'で' nil'は== nil'は 'オプション<オプション> .none'を意味するように推察されます。そして、valは 'Optional .some(Optional .none)'です。これは等しくありません。 –
Alexander
@Alexanderどのように安全にアンラップしてnilをテストするか、それを使用可能にすることができますか?私も入れようとしました! (unwrapper)は動作しても動作しません。オプション<任意の> –
4bottiglie