Skip to content

Instantly share code, notes, and snippets.

@khurram18
Created June 6, 2020 11:59
Show Gist options
  • Save khurram18/97bb57700f6a6e01b1057abc1d77ff72 to your computer and use it in GitHub Desktop.
Save khurram18/97bb57700f6a6e01b1057abc1d77ff72 to your computer and use it in GitHub Desktop.
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