2015-07-12 90 views
0

我想將常量UInt16的值設置爲十六進制值。如何在Swift中以十六進制設置(初始化)unichar/UInt16的值

我知道,設定一個斯威夫特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或其他類型轉換的SO問題。

對於你所有經驗豐富的Objective C程序員來說,這肯定是一個愚蠢的問題,但我很難找到答案。不過,我終於找到了它,所以我會分享我的問題和答案,希望爲將來可能搜索相同問題的其他人添加幾個關鍵字。

注:

回答

1

如果你已經仔細閱讀了Swift文檔的The Basics,你會發現它。

整數常量可以被寫爲:

  • 十進制數,沒有前綴
  • 二進制數,具有前綴0b
  • 一種八進制數,帶有0o前綴
  • A 十六進制號,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

誰降低了這個?這是正確的答案。 –