protocolの解析(LiteralConvertible)

 リテラルはその時点では特定の型として扱われない。リテラル型推論された結果としてその型として扱われる。リテラル型推論された型が対応するLiteralConvertibleを実装している場合、コンパイルエラーとならずその型としてコンパイルされる.
 指定がなければそれぞれ優先度が高いものにコンバートされ型が決定される。
 LiteralConvertibleは現在10個実装されている。

IntegerLiteralConvertible
FloatLiteralConvertible
BooleanLiteralConvertible

整数や実数、2値をコンバートするためのprotocol。

NilLiteralConvertible

nilのコンバープロトコル。指定がなければOptional型にコンバートされる。またはC言語のnullとしてコンバートされる。

ArrayLiteralConvertible
DictionaryLiteralConvertible

コレクションのコンバータ。

StringLiteralConvertible
ExtendedGraphemeClusterLiteralConvertible
UnicodeScalarLiteralConvertible

文字列にコンバートされる。違いについては調べきれていないのでわかりません。