protocol ExpressibleByFloatLiteral A type that can be initialized with a floating-point literal. Conforming Types BinaryFloatingPoint Associated Types associatedtype FloatLiteralType Valid types for FloatLiteralType are Float, Double, and Float80 where available. The standard library floating-point types---Float, Double, and Float80 where available---all conform to the ExpressibleByFloatLiteral protocol. You can initialize a variable or constant of any of these types by assigning a floating-point literal. // Type inferred as 'Double' let threshold = 6.0 // An array of 'Double' let measurements = [2.2, 4.1, 3.65, 4.2, 9.1] Conforming to ExpressibleByFloatLiteral To add ExpressibleByFloatLiteral conformance to your custom type, implement the required initializer. Initializers init init(floatLiteral:) Required Creates an instance initialized to the specified floating-point value. Do not call this initializer directly. Instead, initialize a variable or constant using a floating-point literal. For example: let x = 21.5 In this example, the assignment to the x constant calls this floating-point literal initializer behind the scenes. Parameter value: The value to create. Declaration init(floatLiteral value: Self.FloatLiteralType)