L'ho visto, ma non riesco a capirlo. In qualche modo, apparentemente magicamente, alcune funzioni infix funzionano bene, ma altre semplicemente non verranno compilate. Per esempio:Come si scrivono le funzioni di Infix Swift?
Come vedete qui, il mio lavoro then
funzione come funzione tradizionale, ma non come un infisso uno, eppure la mia *
si ha il problema opposto. Qual è la salsa magica per ottenere la mia funzione then
come infissa?
Domanda laterale: Perché la mia funzione *
non funziona come una funzione tradizionale?
Codice in solo testo lettori e copia-incolla:
public func * (let left:String, let right:Int) -> String {
if right <= 0 {
return ""
}
var result = left
for _ in 1..<right {
result += left
}
return result
}
*("Left", 6) // error: '*' is not a prefix unary operator
"Left" * 6 // "LeftLeftLeftLeftLeftLeft"
public func then (let left:String, let _ right:String) -> String {
return left + right
}
then("Left", "Right") // "LeftRight"
"Left" then "Right" // 2 errors: Consecutive statements on a line must be separated by ';'
Vorrei suggerire di dare un'occhiata qui https://developer.apple.com/library/ios/documentation/Swift/Conceptual/Swift_Programming_Language/AdvancedOperators.html agli operatori infissi. –