リテラルはその時点では特定の型として扱われない。リテラルが型推論された結果としてその型として扱われる。リテラルが型推論された型が対応するLiteralConvertibleを実装している場合、コンパイルエラーとならずその型としてコンパイルされる.
指定がなければそれぞれ優先度が高いものにコンバートされ型が決定される。
LiteralConvertibleは現在10個実装されている。
IntegerLiteralConvertible FloatLiteralConvertible BooleanLiteralConvertible
整数や実数、2値をコンバートするためのprotocol。
NilLiteralConvertible
nilのコンバータプロトコル。指定がなければOptional型にコンバートされる。またはC言語のnullとしてコンバートされる。
ArrayLiteralConvertible DictionaryLiteralConvertible
コレクションのコンバータ。
StringLiteralConvertible ExtendedGraphemeClusterLiteralConvertible UnicodeScalarLiteralConvertible
文字列にコンバートされる。違いについては調べきれていないのでわかりません。