2015-02-21 4 views
1

У меня есть простой код в моем Utilities.swift, потому что я никогда не могу вспомнить «uftwhatever» или count (self).Быстрые функции без параметров

extension String { 
    func length() -> Int { 
     return count(self) 
    } 
} 

Но это означает, что назвать это мне нужно использовать что-то вроде ...

let l = myString.length() 

Я бы моей предпочитаю делать ...

let l = myString.length 

Но я не могу» t понять это. Это возможно?

ответ

1

Да, возможно. Вы просто должны создать его как доступный только для чтения, рассчитанные собственности как следующие:

только для чтения, вычисленного Свойства

Вычисленного свойства с геттер, но не сеттер не известен как только для чтения вычисленной собственности , Вычислимое свойство только для чтения всегда возвращает значение и может быть доступно через точечный синтаксис, но не может быть установлено на другое значение.

ПРИМЕЧАНИЕ

Вы должны объявить вычисляемые свойства, в том числе только для чтения вычислено свойства-как свойства переменных с вар ключевым словом, потому что их значение не зафиксировано. Ключевое слово let используется только для постоянных свойств , чтобы указать, что их значения не могут быть изменены, если они установлены как часть инициализации экземпляра.

Вы можете упростить Провозглашение только для чтения вычисленной собственности удаления с ключевыми словами, и его фигурные скобки:

extension String { 
    var length: Int { 
     return count(self) // Swift 1.2 
    } 
} 


"Hello World".length // 11 
+0

Очень интересно! Я никогда бы не нашел это просто из-за именования, это просто не то, что я бы искал. Благодаря! –

+0

приветствуется –

+0

Если нет параметров, я использую только вычислительное свойство только для чтения, иначе я использую функцию –

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