Created
June 6, 2020 11:59
-
-
Save khurram18/97bb57700f6a6e01b1057abc1d77ff72 to your computer and use it in GitHub Desktop.
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
import UIKit | |
struct Person: ExpressibleByStringLiteral { | |
typealias StringLiteralType = String | |
init(stringLiteral value: StringLiteralType) { | |
let components = value.components(separatedBy: .whitespaces) | |
firstName = components[0] | |
lastName = components[1] | |
} | |
let firstName: String | |
let lastName: String | |
} | |
let person: Person = "Khurram Shehzad" | |
struct Temperature: ExpressibleByIntegerLiteral { | |
typealias IntegerLiteralType = Int | |
init(integerLiteral value: Int) { | |
t = value | |
} | |
let t: Int | |
} | |
func waterBoilingTemperature() -> Temperature { | |
return 100 | |
} | |
let waterBoiling = waterBoilingTemperature() | |
let waterFreezing: Temperature = 0 | |
class LinkedList: ExpressibleByArrayLiteral { | |
var first: Node? | |
class Node { | |
var value: Int? | |
var next: Node? | |
} | |
typealias ArrayLiteralElement = Int | |
required init(arrayLiteral elements: Int...) { | |
var current: Node? | |
for element in elements { | |
if first == nil { | |
first = Node() | |
first?.value = element | |
current = first | |
} else { | |
let node = Node() | |
node.value = element | |
current?.next = node | |
current = node | |
} | |
} | |
} | |
} | |
let linkedList: LinkedList = [1, 2, 3, 4, 5] | |
struct SolarSystem { | |
struct Planet { | |
let name: String | |
let moonsCount: Int | |
} | |
let planets: [Planet] | |
} | |
extension SolarSystem: ExpressibleByDictionaryLiteral { | |
typealias Key = String | |
typealias Value = Int | |
init(dictionaryLiteral elements: (String, Int)...) { | |
var planets = [Planet]() | |
for element in elements { | |
planets.append(Planet(name: element.0, moonsCount: element.1)) | |
} | |
self.planets = planets | |
} | |
} | |
let ourSolarSystem: SolarSystem = [ | |
"Mercury": 0, | |
"Venus": 0, | |
"Earth": 1, | |
"Mars": 2, | |
"Jupiter": 79, | |
"Saturn": 82, | |
"Uranus": 27, | |
"Neptune": 14] |
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment