2015-07-12 8 views
0

Я хочу установить значение константы UInt16 в шестнадцатеричное значение.Как установить значение (инициализировать) unichar/UInt16 в шестнадцатеричном порядке в Swift

Я знаю, что способ установить Swift Character является

let myValue: Character = "\u{1820}" 

поэтому я попытался

let myValue: UInt16 = "\u{1820}" 
let myValue: unichar = "\u{1820}" 
let myValue: UInt16 = "\u{1820}".utf16 
let myValue: unichar = "\u{1820}".utf16 
let myValue = "\u{1820}" 

, но ни один из них не работал.

При поиске ответа у меня в основном были вопросы о преобразовании с NSString или другими типами.

Это, безусловно, глупый вопрос для всех, кого вы испытали программисты Objective C, но мне было трудно найти ответ. Я, наконец, нашел это, поэтому, я поделюсь своим вопросом и ответом, надеюсь, добавит несколько ключевых слов для других, которые могут искать тот же вопрос в будущем.

Примечание:

ответ

1

Если вы прочли The Basics документации Swift немного более тщательно, вы бы нашли его.

Целочисленных литералы можно записать в виде:

  • A десятичного числа, без префикса
  • двоичного номера, с 0b префиксом
  • восьмеричного число, с префиксом 0o
  • A hexadecimal номер с префиксом 0x

Все эти целые литералы имеют десятичное значение 17:

let decimalInteger = 17 
let binaryInteger = 0b10001  // 17 in binary notation 
let octalInteger = 0o21   // 17 in octal notation 
let hexadecimalInteger = 0x11  // 17 in hexadecimal notation 

Таким образом, вы могли бы сделать

let myValue: UInt16 = 0x1820 

или

let myValue: unichar = 0x1820 // unichar is a type alias of UInt16 
+1

Кто отказался от этого? Это правильный ответ. –