/ / Arytmetyka znaków w Swift - szybka

Arytmetyka znaków w Swift - szybka

Rozważ poniższy fragment kodu, aby przekonwertować heks Character do wartości całkowitej

extension Character {

var hexValue : UInt {
let zero : Character = "0"
let nine : Character = "9"
let a : Character = "a"
let f : Character = "f"
let A : Character = "A"
let F : Character = "F"

if self >= zero && self <= nine {
return self - zero
}
if self >= a && self <= f {
return self - a + 10
}
if self >= A && self <= F {
return self - A + 10
}

return 0
}
}

Niestety kompilator Swift nie podoba się +/- operacje na Character.

Jak mogę wykonywać operacje arytmetyczne na postaciach w Swift?

Odpowiedzi:

2 dla odpowiedzi № 1

Znalazłem odpowiedź, gdy wykopałem nagłówki Swift. Możemy użyć UnicodeScalar do tego, jak to:

UnicodeScalar("a").value

value da ci wartość całkowitą znaku

Aby przekonwertować dowolny Character możesz to zrobić

let s = String(myChar).unicodeScalars
let i = scalars[s.startIndex].value

0 dla odpowiedzi nr 2

Wypróbuj NSScanner:

var hexChar = "A"
var hexValue:UInt32 = 0
let scanner = NSScanner(string: hexChar)
scanner.scanHexInt(&hexValue)

println(hexValue) // prints 10