2014-11-14 2 views
4

У меня есть основной вопрос о синтаксисе вызова быстрой функции. Я прочитал документацию, но не смог ее понять. Поэтому я решил поставить здесь запрос.Использование синтаксиса функции Swift NSString

Кусок кода я написал

var string1 = NSString().stringByAppendingString("First string") 
    var string2 = NSString.stringByAppendingString("Second string") 

    println(string1) 
    println(string2) 

Обе строки имеют ту же функцию, призывающую но тип возвращаемого отличается. И только разница здесь (). Я получил из положить как

Первая строка

(Функция)

вопрос, почему его не давая предупреждения/ошибки. Это то, что var string2 имеет метод тела stringByAppendingString? Что происходит, новый быстрый разработчик, такой как я, может легко совершить такую ​​ошибку типографии и не в состоянии понять.

Не могли бы вы объяснить, почему его значение не возвращается?

ответ

6

Это происходит потому, что быстрые методы являются точеными функциями (вы можете найти подробное объяснение в Ole Begemann's post).

Так что вы на самом деле есть в следующей строке:

var string2 = NSString.stringByAppendingString("Second string") 

является функцией, которая принимает строку в качестве параметра и возвращает результат

"Second string".stringByAppendingString(parameter) 

Вы можете проверить, что по телефону string2, как обычная функция:

string2("123") 
// Prints: "Second string123" 
+0

Большая помощь. благодаря –

Смежные вопросы