:Swift ExpressibleByIntegerLiteral - 正確にはどのように機能しますか?イオス10プログラミングの基礎から撮影
「巣はExpressibleByIntegerLiteralを採用しているので、私たちは:)巣が期待されているのInt、そして私たちのinit(integerLiteralを渡すことができます.....自動的に呼び出されます」
struct Nest : ExpressibleByIntegerLiteral {
var eggCount : Int = 0
init() {}
init(integerLiteral val: Int) {
self.eggCount = val
}
}
私の質問はこれです...どのように自動的に呼び出されるのですか?理由を理解しようとすると、私の論理はレンガの壁に流れ込んでいきます。大丈夫どこ等号の後の番号5は、簡略のために、実際にはどのようにあるロジックです...
var eggie : Nest = 5
をしかし:私が見たものから、あなたが言うことができ
var eggie : Nest = Nest(5)
AKA "新しいインスタンスを初期化する標準的な方法です...
これは、その変換を処理しているExpressibleByIntegerLiteralプロトコルの中に隠されているだけですか?
おかげ
*コンパイラは 'var eggie:Nest = 5'を' var eggie = Nest(integerLiteral:5) 'に変換します。 –