Optional型にnilリテラルを代入できる理由について
Optional型に、nilが代入できる理由は、NilLiteralConvertible プロトコルを実装しているからだと。
var a : Int? = nil
上記のようにnilをオプショナル型に代入するとき、
NilLiteralConvertible のイニシャライザがよばれることで、
nilの代入が可能となるみたいなのですが、
NilLiteralConvertible のイニシャライザの定義が次のようなっています。
init(nilLiteral: ())
これは、型の指定が、空のタプルにもみえますが、空のタプルは「型」ではないですし、
なぜ、このイニシャライザ呼ばれることになるのでしょうか。
また型の「()」は何をいみしているのでしょうか?
教えてください。