Latest web development tutorials

guión subíndice Swift

guión subíndice se puede definir en la clase (clase), estructura (estructura) y el recuento (recuento) de estos objetivos se puede considerar el acceso al objeto, una colección de atajos o secuencias no es necesario llamar a las tareas específicas de la instancia y el acceso métodos.

Por ejemplo, una secuencia de comandos con acceso a un elemento instancia índice de matriz (Array) puede escribir someArray [índice], el acceso elemento de la instancia diccionario (diccionario) se puede escribir someDictionary [clave].

Para el mismo objetivo se puede definir múltiples guión subíndice, diferentes tipos de valores de índice a ser sobrecargados, y el número de valores de índice pueden ser plural.


sintaxis de secuencias subíndice y Aplicación

gramática

El subíndice de la escritura que permite a los valores del índice pasando uno o más de los siguientes casos en corchetes para el acceso y la asignación por ejemplo.

La sintaxis es similar a la mezcla de métodos de instancia y capacidad de cómputo.

Y la definición de un método de instancia es similar a la definición de la secuencia de comandos subíndice subíndice palabras clave que declarar explícitamente el Senado (uno o más) y el tipo de retorno.

Y ejemplos de diferentes métodos es la escritura subíndice se puede configurar para lectura-escritura o de sólo lectura. De esta manera, un poco como getter y setter propiedades computacionales:

subscript(index: Int) -> Int {
    get {
        // 用于下标脚本值的声明
    }
    set(newValue) {
        // 执行赋值操作
    }
}

Ejemplo 1

import Cocoa

struct subexample {
    let decrementer: Int
    subscript(index: Int) -> Int {
        return decrementer / index
    }
}
let division = subexample(decrementer: 100)

print("100 除以 9 等于 \(division[9])")
print("100 除以 2 等于 \(division[2])")
print("100 除以 3 等于 \(division[3])")
print("100 除以 5 等于 \(division[5])")
print("100 除以 7 等于 \(division[7])")

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

100 除以 9 等于 11
100 除以 2 等于 50
100 除以 3 等于 33
100 除以 5 等于 20
100 除以 7 等于 14

En el ejemplo anterior, por la estructura subexample crea una instancia de una operación de división. Un valor de 100 como el argumento del constructor estructura aprobada para inicializar decrementer miembro de instancia.

Usted puede obtener el resultado por el guión subíndice, tales como la división [2] es 100 dividido por dos.

Ejemplo 2

import Cocoa

class daysofaweek {
    private var days = ["Sunday", "Monday", "Tuesday", "Wednesday",
        "Thursday", "Friday", "saturday"]
    subscript(index: Int) -> String {
        get {
            return days[index]   // 声明下标脚本的值
        }
        set(newValue) {
            self.days[index] = newValue   // 执行赋值操作
        }
    }
}
var p = daysofaweek()

print(p[0])
print(p[1])
print(p[2])
print(p[3])

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

Sunday
Monday
Tuesday
Wednesday

uso

De acuerdo con diferentes escenarios de uso de la escritura subíndice también tiene un significado diferente.

Por lo general la escritura subíndice se utiliza para acceder a la colección (colección), la lista de accesos directos (lista) o secuencia (secuencia) de los elementos.

Usted es libre de poner en práctica la escritura de índice en su propia clase particular o estructura para proporcionar la funcionalidad adecuada.

Por ejemplo, el diccionario de Swift (diccionario) para lograr la operación de acceso por el valor de la instancia de la escritura subíndice almacenada en él. El siguiente valor estándar que se utiliza en el índice de secuencia de comandos y el diccionario del mismo tipo, y el valor de un tipo de valor diccionario se asigna al valor de índice de poner el pie en el diccionario:

import Cocoa

var numberOfLegs = ["spider": 8, "ant": 6, "cat": 4]
numberOfLegs["bird"] = 2

print(numberOfLegs)

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

["ant": 6, "bird": 2, "cat": 4, "spider": 8]

El ejemplo se define una variable llamada numberOfLegs y usar un diccionario literal para inicializar una instancia del diccionario contiene tres pares de llaves. diccionario numberOfLegs tipo de valor almacenado Diccionario inferido . Después de la instancia diccionario es creado por la forma en que el valor entero de la escritura subíndice 2 asignado al índice de instancia en Inglés para la ubicación del ave.


opciones de script subíndice

El subíndice de la escritura permite que cualquier número de parámetros en el índice, y cada tipo Tampoco hay límite en el Senado.

Rendimiento del índice Valor de la secuencia de comandos puede ser de cualquier tipo.

guión subíndice puede utilizar parámetros variables y parámetros variables.

Una clase o estructura puede ser de acuerdo a sus propias necesidades para proporcionar más de las siguientes secuencias de comandos estándar, al definir el guión subíndice pasando parámetros para distinguir el tipo, que se ajustará automáticamente a la escritura de guiones subíndice subíndice de tiempo de ejecución apropiada, la cual esguión sobrecargada.

import Cocoa

struct Matrix {
    let rows: Int, columns: Int
    var print: [Double]
    init(rows: Int, columns: Int) {
        self.rows = rows
        self.columns = columns
        print = Array(count: rows * columns, repeatedValue: 0.0)
    }
    subscript(row: Int, column: Int) -> Double {
        get {
            return print[(row * columns) + column]
        }
        set {
            print[(row * columns) + column] = newValue
        }
    }
}
// 创建了一个新的 3 行 3 列的Matrix实例
var mat = Matrix(rows: 3, columns: 3)

// 通过下标脚本设置值
mat[0,0] = 1.0
mat[0,1] = 2.0
mat[1,0] = 3.0
mat[1,1] = 5.0

// 通过下标脚本获取值
print("\(mat[0,0])")
print("\(mat[0,1])")
print("\(mat[1,0])")
print("\(mat[1,1])")

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

1.0
2.0
3.0
5.0

estructura de la matriz proporciona un constructor de dos argumentos pasan dos parámetros son las filas y columnas, crear una matriz de tipo Doble para acomodar el número de filas * columnas. Para el almacenamiento, el tamaño de cada elemento de la matriz y el valor inicial gama de 0,0.

Es posible construir una nueva instancia de matriz pasando la fila y la columna correspondiente del número.