我正在閱讀關於advanced operators的swift。爲什麼'infix`是默認的
基本功能:
func add(a: Unicorn, b: Unicorn) -> Unicorn { return a + b }
add(u1, u2) // two unicorns are added
中綴運算符:
func + (a: Unicorn, b: Unicorn) -> Unicorn { return a + b }
c = u1 + u2
後綴:
postfix func + (a: Unicorn) -> Unicorn { return a + 2 } // nonsense example
u1+
我不明白怎麼infix
可以推定爲默認值。從正常的函數聲明來看,它與我看起來沒有什麼不同。
這裏有什麼規則 - 任何單個字符是中綴操作的合法名稱?這是否意味着單個char函數不被允許?可以任意兩個參數函數在swift中被稱爲infix風格?
有時候,爲了真正理解編程語言中的某些東西,你需要去學習一些關於編譯器的知識。在這種情況下,詞法分析是什麼以及語法分析是什麼。 – Sulthan
要了解真正全面的知識,學習詞法分析器和編譯器會很棒。我很樂意參加編譯器課程。現在,只要知道如果函數名是一個運算符並且它有兩個參數就足夠了,'infix'是一個可導出的默認值。自定義操作符需要定義,所以這仍然有效。 – SimplGy