Latest web development tutorials

Métodos Swift

Swift es una función del método asociado con ciertos tipos

En Objective-C, las clases son los métodos único tipo definido. Pero Swift, que no sólo puede elegir si desea definir una clase / estructura / enumeración, sino también flexible en el tipo (clase / estructura / enum) que se crea en el método de definición.


Métodos de instancia

En el lenguaje de Swift, un método de instancia pertenece a una clase en particular, una estructura o las instancias de tipo enumerado.

método de instancia proporciona los siguientes métodos:

  • Puede acceder y modificar las propiedades de instancia

  • Ejemplo proporcionar funciones relacionadas con el objeto

Ejemplos de métodos para escribir en torno al que pertenece entre los tipos de llaves ({}).

Ejemplos de método implícito pueden tener acceso a todos los métodos y propiedades de otras instancias del tipo al que pertenece.

Ejemplos de métodos sólo se pueden llamar un caso particular de la clase a la que pertenece.

método de instancia no se puede separar en la instancia existente se llama.

gramática

func funcname(Parameters) -> returntype
{
    Statement1
    Statement2
    ……
    Statement N
    return parameters
}

Ejemplos

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)

La salida por encima de la ejecución del programa es:

6
0

Contador clase define tres métodos de instancia:

  • increment modo que el contador se incrementa en uno;
  • incrementBy(amount: Int) hacer contador en un valor entero especificado se incrementa;
  • reset el contador se pone a 0.

Counter Esta clase también declara un atributo variable de count , lo utilizan para no perder de vista el valor actual del contador.


nombre de parámetro local y el nombre del método de los parámetros externos

parámetros de la función Swift pueden tener tanto un nombre local (en el cuerpo de la función de uso interno) y un nombre externo (se utiliza cuando se llama a las funciones

métodos Swift y método de Objective-C muy similar. Al igual que en Objective-C, el mismo que el nombre de Swift en el método por lo general una preposición apunta al primer método de parámetros, por ejemplo: con, por, por, y así sucesivamente.

Swift por defecto sólo para el método del primer parámetro el nombre de un nombre de parámetro local; el valor por defecto, al mismo tiempo que la segunda y la posterior nombre del parámetro nombre global de parámetros.

Los siguientes ejemplos 'no1' declaró localmente en el nombre del parámetro en el veloz. 'No2' de declaraciones globales y se accede a través de un programa externo.

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)

La salida por encima de la ejecución del programa es:

600
320
3666

Ya sea para proporcionar los valores de nombres externos

Forzamos el primer argumento para añadir un nombre externo para el nombre del nombre local como uso externo (Swift 2.0 antes de utilizar el signo #).

En lugar de ello, podemos utilizar también subraya (_) para establecer la segunda y siguientes argumentos no proporcionan un nombre externo.

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)

La salida por encima de la ejecución del programa es:

2400
500
45000

propiedad de auto

Cada instancia del tipo tiene una propiedad llamada implícita auto, auto exactamente la misma que la propia instancia.

Puede utilizar este auto implícita de una propiedad en una instancia método de instancia para hacer referencia a la instancia actual.

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()

La salida por encima de la ejecución del programa es:

Self 内: 900
Self 内: 1500
结果为: 880
结果为: 850
结果为: 1480
结果为: 1450

Modificar el método de instancia de tipo de valor

las estructuras del lenguaje Swift y enumeraciones son tipos de valor. En general, el tipo del valor de la propiedad no puede ser modificado en sus métodos de instancia.

Pero si usted realmente necesita para cambiar la estructura o propiedades enumeradas de forma específica, se puede elegir la variación (mutación) del método, el método puede cambiar las propiedades del método interno; cualquier cambio, y lo hace al final del método se dejará en la estructura original.

El método también puede darle implícita asignación de propiedad auto una nueva instancia de esta nueva instancia para reemplazar la instancia original con el método.

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)

La salida por encima de la ejecución del programa es:

9
15
270
450
81000
135000

En la variable de proceso asignada a la libre

método de la variable puede asignar atributos auto implicaba una nueva instancia.

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)

La salida por encima de la ejecución del programa es:

39
65

métodos de tipo de

método de instancia es un método se llama una instancia del tipo, también se puede definir el tipo de método llama a sí mismo, este método se denomina método de tipo.

Declaración de la estructura y el método de tipo enumerado antes método palabra clave func con la palabra clave estática. Clase puede utilizar la clase de palabras clave para permitir subclases sustituir la implementación de la clase padre.

El mismo tipo de instancia y métodos que utilizan el punto (.) Sintaxis para invocar.

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)

La salida por encima de la ejecución del programa es:

35
5