Swift Методы
Swift является функцией метода, связанный с определенными типами
В Objective-C, классы являются определены только типа методы. Но Swift, вы не только можете выбрать, хотите ли вы, чтобы определить класс / структуры / перечисление, но и гибкость в типе (класс / структура / перечислений), который вы создаете на методе определения.
Методы экземпляра
В Swift языке, метод экземпляра принадлежит к определенному классу, структуре или пронумерованный экземпляров типа.
Метод Instance предоставляет следующие методы:
Вы можете получить доступ и изменять свойства экземпляра
Пример предоставления объектно-функций, связанных с
Примеры способов, чтобы написать вокруг принадлежит между типами скобок ({}).
Примеры неявного метода можно получить доступ ко всем методам и свойствам других экземпляров такого типа, к которому она принадлежит.
Примеры способов можно только назвать конкретный экземпляр класса, к которому он принадлежит.
метод экземпляра класса не могут быть разделены на существующий экземпляр называется.
грамматика
func funcname(Parameters) -> returntype { Statement1 Statement2 …… Statement N return parameters }
примеров
import Cocoa class Counter { var count = 0 func increment() { count++ } func incrementBy(amount: Int) { count += amount } func reset() { count = 0 } } // 初始计数值是0 let counter = Counter() // 计数值现在是1 counter.increment() // 计数值现在是6 counter.incrementBy(5) print(counter.count) // 计数值现在是0 counter.reset() print(counter.count)
Выход выше выполнение программы:
6 0
Класс счетчика определяет три метода экземпляра:
-
increment
так , что счетчик увеличивается на единицу; -
incrementBy(amount: Int)
делает счетчик на заданное целое значение увеличивается на единицу; -
reset
счетчик сбрасывается на 0.
Counter
Этот класс также объявляет переменную атрибут count
, использовать его для отслеживания текущего значения счетчика.
Локальное имя параметра и имя метода внешних параметров
Быстрые параметры функции могут иметь как локальное имя (в теле функции, используемой внутри страны) и внешний (имя, используемый при вызове функций
Быстрые методы и метод Objective-C очень похожи. Как и в Objective-C, так же, как имя Swift в методе обычно предлог указывает на первый метод параметра, например: с, ибо она, и так далее.
Swift по умолчанию только к методу первого параметра имя локального имени параметра, по умолчанию, в то же время ко второму и последующим глобальным именем параметра имя параметра.
В следующих примерах 'нет1' объявлена локально во имя параметра в стрижа. 'No2' для глобальных деклараций и доступ к ним через внешнюю программу.
import Cocoa class division { var count: Int = 0 func incrementBy(no1: Int, no2: Int) { count = no1 / no2 print(count) } } let counter = division() counter.incrementBy(1800, no2: 3) counter.incrementBy(1600, no2: 5) counter.incrementBy(11000, no2: 3)
Выход выше выполнение программы:
600 320 3666
Независимо от того, чтобы обеспечить внешние настройки имен
Мы заставляем первый аргумент, чтобы добавить внешнее имя к имени локального имени в качестве внешнего использования (Swift 2.0 перед использованием знак #).
Вместо этого мы можем использовать это также подчеркивает (_), чтобы установить второй и последующие аргументы не дают внешнее имя.import Cocoa class multiplication { var count: Int = 0 func incrementBy(first no1: Int, no2: Int) { count = no1 * no2 print(count) } } let counter = multiplication() counter.incrementBy(first: 800, no2: 3) counter.incrementBy(first: 100, no2: 5) counter.incrementBy(first: 15000, no2: 3)
Выход выше выполнение программы:
2400 500 45000
само свойство
Каждый экземпляр типа имеет свойство, называемое неявное, само себя точно так же, как и самим экземпляром.
Вы можете использовать эту неявной свойство и настраивает в экземпляре метода экземпляра для ссылки на текущий экземпляр.
import Cocoa class calculations { let a: Int let b: Int let res: Int init(a: Int, b: Int) { self.a = a self.b = b res = a + b print("Self 内: \(res)") } func tot(c: Int) -> Int { return res - c } func result() { print("结果为: \(tot(20))") print("结果为: \(tot(50))") } } let pri = calculations(a: 600, b: 300) let sum = calculations(a: 1200, b: 300) pri.result() sum.result()
Выход выше выполнение программы:
Self 内: 900 Self 内: 1500 结果为: 880 结果为: 850 结果为: 1480 结果为: 1450
Измените метод экземпляра типа значения
Swift языковые структуры и перечислений являются типами значений. В общем случае, тип значения свойства не могут быть изменены в его методах экземпляра.
Но если вам действительно нужно изменить структуру или перечисленное свойство определенным образом, вы можете выбрать вариант (мутирует) метод, то метод может изменить свойства из внутреннего метода, каких-либо изменений, и это делает в конце способа она будет оставаться в исходной структуре.
Способ также может дать Подразумевалось Присвоение собственной собственности новый экземпляр этого нового экземпляра, чтобы заменить исходный экземпляр с помощью метода.
import Cocoa struct area { var length = 1 var breadth = 1 func area() -> Int { return length * breadth } mutating func scaleBy(res: Int) { length *= res breadth *= res print(length) print(breadth) } } var val = area(length: 3, breadth: 5) val.scaleBy(3) val.scaleBy(30) val.scaleBy(300)
Выход выше выполнение программы:
9 15 270 450 81000 135000
В переменной процесса назначается самостоятельно
Переменный метод может назначить атрибуты самостоятельной подразумевается новый экземпляр.
import Cocoa struct area { var length = 1 var breadth = 1 func area() -> Int { return length * breadth } mutating func scaleBy(res: Int) { self.length *= res self.breadth *= res print(length) print(breadth) } } var val = area(length: 3, breadth: 5) val.scaleBy(13)
Выход выше выполнение программы:
39 65
методы типа
Метод экземпляра метод называется экземпляром типа, вы можете также определить тип метода называет себя, этот метод называется метод типа.
Заявление структура и метод Перечислимый типа перед тем методом FUNC ключевого слова с ключевым словом статическим. Класс может использовать класс ключевое слово, чтобы позволить подклассам переопределить реализацию родительского класса.
Те же методы типа и экземпляра, используя точку (.) Синтаксис для вызова.
import Cocoa class Math { class func abs(number: Int) -> Int { if number < 0 { return (-number) } else { return number } } } struct absno { static func abs(number: Int) -> Int { if number < 0 { return (-number) } else { return number } } } let no = Math.abs(-35) let num = absno.abs(-5) print(no) print(num)
Выход выше выполнение программы:
35 5