protocol ExpressibleByIntegerLiteral A type that can be initialized with an integer literal. The standard library integer and floating-point types, such as Int and Double, conform to the ExpressibleByIntegerLiteral protocol. You can initialize a variable or constant of any of these types by assigning an integer literal. // Type inferred as 'Int' let cookieCount = 12 // An array of 'Int' let chipsPerCookie = [21, 22, 25, 23, 24, 19] // A floating-point value initialized using an integer literal let redPercentage: Double = 1 // redPercentage == 1.0 Conforming to ExpressibleByIntegerLiteral To add ExpressibleByIntegerLiteral conformance to your custom type, implement the required initializer. Inheritance View Protocol Hierarchy → Associated Types IntegerLiteralType A type that represents an integer literal. The standard library integer and floating-point types are all valid types for IntegerLiteralType. Import import Swift Initializers init(integerLiteral:) Creates an instance initialized to the specified integer value. Do not call this initializer directly. Instead, initialize a variable or constant using an integer literal. For example: let x = 23 In this example, the assignment to the x constant calls this integer literal initializer behind the scenes. value: The value to create. Declaration init(integerLiteral value: Self.IntegerLiteralType) Default Implementations init(integerLiteral:) Create an instance initialized to value. Declaration init(integerLiteral value: Self)