Swift Language pedici


Esempio

Classi, strutture ed enumerazioni possono definire pedici, che sono scorciatoie per accedere agli elementi membri di una raccolta, un elenco o una sequenza.

Esempio

struct DaysOfWeek {
  
  var days = ["Sun", "Mon", "Tue", "Wed", "Thu", "Fri", "Sat"]
  
  subscript(index: Int) -> String {
    get {
      return days[index]
    }
    set {
      days[index] = newValue
    }
  }
}

Uso degli abbonati

var week = DaysOfWeek()
//you access an element of an array at index by array[index].
debugPrint(week[1])
debugPrint(week[0])
week[0] = "Sunday"
debugPrint(week[0])

Opzioni di iscrizione:

Gli indici di sottoscrizione possono prendere qualsiasi numero di parametri di input e questi parametri di input possono essere di qualsiasi tipo. Gli abbonati possono anche restituire qualsiasi tipo. Gli indici di sottoscrizione possono utilizzare parametri variabili e parametri variadici, ma non possono utilizzare parametri in-out o fornire valori di parametro predefiniti.

Esempio:

struct Food {
  
  enum MealTime {
    case Breakfast, Lunch, Dinner
  }
  
  var meals: [MealTime: String] = [:]
  
  subscript (type: MealTime) -> String? {
    get {
      return meals[type]
    }
    set {
      meals[type] = newValue
    }
  }
}

uso

var diet = Food()
diet[.Breakfast] = "Scrambled Eggs"
diet[.Lunch] = "Rice"

debugPrint("I had \(diet[.Breakfast]) for breakfast")