Skip to content

Instantly share code, notes, and snippets.

View Agarunov's full-sized avatar

Anton Agarunov Agarunov

View GitHub Profile
protocol Sequence {
associatedtype SubSequence: Sequence
where Iterator.Element == SubSequence.Iterator.Element, SubSequence.SubSequence == SubSequence
// code
}
struct Pet {
let name: String
}
let pets = [Pet(name: "Beethoven")]
let encoder = JSONEncoder()
try! encoder.encode(pets)
let array1: [String?] = ["Jon", "Snow", nil]
let array2: [String?] = ["Winter", "is", "coming", "!", nil]
array1 == array2 // false
extension Array: Equatable where Element: Equatable {
static func ==(lhs: Array<Element>, rhs: Array<Element>) -> Bool {
// do stuff
}
}
struct Person: Codable {
let firstName: String
let lastName: String
}
let jsonData = """
{
"first_name": "John",
"last_name": "Watson"
}
let string = "Hello, World!"
let keyPath = \String.[string.startIndex]
string[keyPath: keyPath]
let friends = ["Ross", nil, "Joey", "Chandler"]
// Swift 4.0
let array1 = friends.flatMap { $0 } // ["Ross", "Joey", "Chandler"]
// Swift 4.1
let array2 = friends.compactMap { $0 } // ["Ross", "Joey", "Chandler"]
// Swift 4.1
#if targetEnvironment(simulator)
// Simulator!
#endif
// Swift 4.0
#if (arch(i386) || arch(x86_64)) && os(iOS)
// Simulator!
#else
// Device!
#if canImport(UIKit)
// UIKit is available!
import UIKit
#endif
// Declared inside framework
struct Point: Hashable {
let x: Float
let y: Float
init(x: Float, y: Float) {
self.x = x
self.y = y
}
}