2015-09-08 65 views
0

我想利用這個事實,即swift支持unicode字符的變量的名稱,但我不能讓它的工作。我有一個UIView的子類,我在某個方向繪製。我的計劃是有一個這樣的枚舉:使用unicode箭頭字符的變量名或枚舉案例

enum ShapeDirection { 
    case ← 
    case → 
    case ↑ 
    case ↓ 
    case ↖ 
    case ↗ 
    case ↘ 
    case ↙ 
} 

,我認爲將是有效的,但我不斷收到此錯誤:

Unary operand cannot be separated from its operand

我試圖給ShapeDirection類型(String)和爲每個案例分配值,但問題仍然相同。我還嘗試用其中一個箭頭作爲名稱來初始化獨立變量,但是我得到相同的錯誤。這是否意味着編譯器不支持這組特殊的unicode字符?是否有等價的全套方向箭頭?


編輯:

對於那些想知道什麼是乾淨的代碼,什麼是可讀的,怎樣的故事結束了 - 我選擇了簡單的情況下北,南,東,西等與箭頭作爲String格式的原始值。

+0

我沒有任何Swift的經驗atm,但即使這樣也有點搞笑我認爲這是一個可怕的想法在同一時間。不要混淆源代碼閱讀器。儘可能保持簡單。希望這只是一個手指練習,並不會將其編入生產代碼。 – HelloWorld

+3

代碼不是關於「變得酷」,而是關於其他開發人員的可讀性和可理解性。在冷靜的一面,爲什麼不使用錯誤消息。 – zaph

+0

@ zaph:真棒主意:D – HelloWorld

回答

4

更新:他們被允許在運營商,但explicitly not in identifiers (the names of things)

identifier-head → U+2070–U+20CF, U+2100–U+218F, [U+2190 and forward missing] U+2460–U+24FF, or U+2776–U+2793

所以這如預期運作,或設計成至少。


這聽起來像一個錯誤。 All of these charactersinside the following range of the Swift grammar

operator-head → U+2190–U+23FF

...所以,它聽起來就像你打一個bug,或者沒有文件保存在如UTF-8。

+0

什麼是「他們」? – zaph

+2

Michal想使用的角色。看到問題。 – Jesper