Zend Framework 2, Doctrine2 ORM - отношение нескольких сущностей

Я искал исчерпывающий ответ о строковых манипуляциях в Swift. Опираясь на приведение к и из NSString и других небезопасных указателей, магия просто не делала этого для меня. Вот безопасная альтернатива:

Сначала мы хотим расширить UInt8. Это примитивный тип позади CodeUnit.

extension UInt8 {
    var character: Character {
        return Character(UnicodeScalar(self))
    }
}

Это позволит нам сделать что-то вроде этого:

let codeUnits: [UInt8] = [
    72, 69, 76, 76, 79
]

let characters = codeUnits.map { $0.character }
let string     = String(characters)

// string prints "HELLO"

Оборудовано этим расширением, теперь мы можем изменять строки.

let string = "ABCDEFGHIJKLMONP"

var modifiedCharacters = [Character]()
for (index, utf8unit) in string.utf8.enumerate() {

    // Insert a "-" every 4 characters
    if index > 0 && index % 4 == 0 {
        let separator: UInt8 = 45 // "-" in ASCII
        modifiedCharacters.append(separator.character)
    }
    modifiedCharacters.append(utf8unit.character)
}

let modifiedString = String(modifiedCharacters)

// modified string == "ABCD-EFGH-IJKL-MONP"
0
задан lc_ik 25 February 2015 в 17:48
поделиться