This proposal adds a new \N{name} escape sequence to Swift string literals,
where name is the name of a Unicode character.
The Unicode named character escape sequence was previously discussed here:
| import UIKit | |
| #if canImport(SwiftUI) && DEBUG | |
| import SwiftUI | |
| struct UIViewControllerPreview<ViewController: UIViewController>: UIViewControllerRepresentable { | |
| let viewController: ViewController | |
| init(_ builder: @escaping () -> ViewController) { | |
| viewController = builder() | |
| } |
| import Foundation | |
| extension Character { | |
| var isEmoji: Bool { | |
| return unicodeScalars.allSatisfy { $0.properties.isEmoji } | |
| } | |
| } | |
| func recentlyUsedEmoji() -> [Character]? { | |
| #if os(iOS) |
| #!/usr/bin/swift sh | |
| import DeckOfPlayingCards // @NSHipster ~> 4.0.0 | |
| import PlayingCard | |
| import Cycle // @NSHipster == bb11e28 | |
| class Player { | |
| var name: String | |
| var hand: [PlayingCard] = [] | |
| import Foundation | |
| extension Collection where Element: Comparable { | |
| func sorted(ascending: Bool = true, using comparator: (Element) -> (Element) -> ComparisonResult) -> [Element] { | |
| return self.sorted { lhs, rhs in | |
| comparator(lhs)(rhs) == (ascending ? .orderedAscending : .orderedDescending) | |
| } | |
| } | |
| } |
| import Foundation | |
| extension UnitConcentrationMass { | |
| class var microgramsPerCubicMeter: UnitConcentrationMass { | |
| let converter = UnitConverterLinear(coefficient: 1e-9) | |
| return .init(symbol: "µg/m³", converter: converter) | |
| } | |
| } |
| func unzip<S: Sequence, T, U>(_ sequence: S) -> (AnySequence<T>, AnySequence<U>) | |
| where S.Element == (T, U) | |
| { | |
| return ( | |
| AnySequence(sequence.lazy.map{ $0.0 }), | |
| AnySequence(sequence.lazy.map{ $0.1 }) | |
| ) | |
| } | |
| let fibonacci = sequence(first: (0, 1), next: { ($1, $0 + $1) }) |
| /* | |
| # Problem | |
| In Swift, it can be cumbersome to work with Unicode characters that are | |
| non-printing, confusable, or have difficulty rendering in the editor. | |
| For example, to generate the "Family: Woman, Girl" emoji: | |
| */ | |
| // Option 1: Unicode Scalar Value Escapes |
| import Foundation | |
| struct TruthyValue { | |
| var value: Bool? | |
| init(_ value: Bool?) { | |
| self.value = value | |
| } | |
| init(_ value: Int) { | |
| switch value { |
| public struct BoundedSequence<Base>: Sequence, IteratorProtocol where Base: Sequence { | |
| public struct Boundary: Equatable { | |
| public let isStart: Bool | |
| public let isEnd: Bool | |
| } | |
| private var _iterator: Base.Iterator | |
| private var _previous: Base.Element? | |
| private var _current: Base.Element? | |
| private var _next: Base.Element? |