Latest web development tutorials

sceneggiatura pedice Swift

sceneggiatura pedice può essere definito nella classe (Class), la struttura (struttura) e l'enumerazione (enumerazione) di questi obiettivi può essere considerato l'accesso all'oggetto, una raccolta di scorciatoie o sequenze non è necessario chiamare le assegnazioni specifiche delle istanze e l'accesso metodi.

Ad esempio, uno script con accesso a un indice di array (Array) elemento di esempio può scrivere someArray [index], l'accesso elemento l'istanza dizionario (dizionario) può scrivere someDictionary [key].

Per lo stesso obiettivo può definire più script di pedice, diversi tipi di valori di indice da sovraccarichi, e il numero di valori degli indici possono essere plurale.


sintassi dello script pedice e applicazione

grammatica

script di pedice consente di valori di indice passando uno o più dei seguenti casi in parentesi quadre per l'accesso e l'assegnazione per esempio.

La sintassi è simile a quella di miscelazione metodi di istanza e la proprietà di calcolo.

E la definizione di un metodo di istanza è simile alla definizione dello script pedice pedice parole chiave che dichiarare esplicitamente Senato (uno o più) e il tipo di ritorno.

Ed esempi di metodi diversi è scritto pedice può essere impostata su lettura-scrittura o di sola lettura. In questo modo, un po 'come getter e setter proprietà computazionali:

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

esempio 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])")

L'output sopra l'esecuzione del programma è il seguente:

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

Nell'esempio precedente, dalla struttura subexample crea un'istanza di un'operazione di divisione. Un valore di 100 come argomento la struttura del costruttore passato per inizializzare membro decrementatore esempio.

È possibile ottenere il risultato dallo script pedice, come ad esempio la divisione [2] è 100 diviso per due.

esempio 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])

L'output sopra l'esecuzione del programma è il seguente:

Sunday
Monday
Tuesday
Wednesday

uso

Secondo diversi scenari di utilizzo di script pedice ha anche un significato diverso.

In genere lo script pedice viene utilizzato per accedere alla raccolta (raccolta), l'elenco di scelta rapida (lista) o una sequenza (sequenza) di elementi.

Siete liberi di implementare lo script indice nel proprio particolare classe o struct per fornire la funzionalità appropriata.

Ad esempio, il dizionario Swift (dizionario) per ottenere l'operazione di accesso dal valore di istanza di script pedice memorizzati in esso. Il valore standard successivo utilizzato nello script e dizionario indice dello stesso tipo, e il valore di un tipo di valore dizionario è assegnato al valore di indice piede al dizionario:

import Cocoa

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

print(numberOfLegs)

L'output sopra l'esecuzione del programma è il seguente:

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

L'esempio definisce una variabile di nome numberOfLegs e utilizzare un dizionario letterale per inizializzare un'istanza del dizionario contiene tre coppie di chiavi. dizionario numberOfLegs memorizzato tipo di valore Dizionario inferito . Dopo l'istanza dizionario viene creato dal modo in cui il valore intero script di pedice 2 assegnato al dizionario indice dell'istanza per la posizione dell'uccello.


Opzioni di script pedice

sceneggiatura pedice consente a qualsiasi numero di parametri nell'indice, ed ogni tipo è anche nessun limite al Senato.

Return Index Valore dello script può essere di qualsiasi tipo.

sceneggiatura pedice può utilizzare parametri variabili e parametri variabili.

Una classe o struttura può essere in base alle proprie esigenze per fornire più dei seguenti script standard, al momento di definire lo script pedice passando i parametri per distinguere il tipo, essa corrisponderà automaticamente gli script pedice Script Runtime pedice del caso, che èsceneggiatura pedice sovraccarico.

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])")

L'output sopra l'esecuzione del programma è il seguente:

1.0
2.0
3.0
5.0

struttura a matrice offre una due argomenti del costruttore passati due parametri sono le righe e le colonne, creare una matrice di tipo abbastanza doppio per ospitare il numero di righe * colonne. Per lo stoccaggio, la dimensione di ciascun elemento della matrice e la matrice valore iniziale di 0,0.

È possibile costruire una nuova istanza Matrix passando la riga appropriata e la colonna del numero.