English | 简体中文 | 繁體中文 | Русский язык | Français | Español | Português | Deutsch | 日本語 | 한국어 | Italiano | بالعربية
En termes simples, les ensembles sont également un type de données, mais ce type de données ne contient que des données spécifiques personnalisées, c'est un ensemble de données avec des caractéristiques communes.
Les ensembles Swift sont similaires aux structures Objective C et C, et les fonctionnalités des ensembles sont :
Il est déclaré dans la classe, et son valeur peut être accédée en instanciant la classe.
Les ensembles peuvent également définir des constructeurs (initializers) pour fournir une valeur de membre initiale ; ils peuvent étendre leurs fonctionnalités sur la base de l'implémentation originale.
il peut respecter les protocoles (protocols) pour fournir des fonctionnalités standard.
Swift utilise la clé de mots enum pour créer des ensembles et les placer dans une paire de crochets :
enum enumname { // la définition de l'ensemble est ici }
par exemple, nous définissons les suivants pour représenter les jours de la semaine :
import Cocoa // définir l'ensemble enum DaysofaWeek { case Sunday case Monday case TUESDAY case WEDNESDAY case THURSDAY case FRIDAY case samedi } type. weekDay = .THURSDAY switch weekDay { case .Sunday: print("dimanche") case .Monday: print("lundi") case .TUESDAY: print("mardi") case .WEDNESDAY: print("mercredi") case .THURSDAY: print("jeudi") case .FRIDAY: print("vendredi") case .Saturday: } }
以上程序执行输出结果为:
case .
print("samedi") Sunday
,Monday
,……
etSaturday
jeudi)est une valeur définie dans cet enumération (par exemplevaleur de membre(oumembre)。
case
représente une nouvelle ligne de valeur de membre qui sera définie.
Remarque :-C et Objective-CDaysofaWeek
dans l'exemple,Sunday
,Monday
,……
etSaturday
ne sont pas assignés implicitement à0
,1
,……
et6
Par contraste, les membres de l'enumération eux-mêmes ont des valeurs complètes, qui sont déjà bien définiesDaysofaWeek
.
type.
weekDay
var weekDay = DaysofaWeek.DaysofaWeek
valeur possible est inférée lors de l'initialisation.weekDay
Déclaré comme uneDaysofaWeek
Vous pouvez utiliser une syntaxe abrégée (.) pour la définir comme une autreDaysofaWeek
valeur :
var weekDay = .
lorsqueweekDay
Lorsque le type est connu, vous pouvez omettre le nom de l'enumération lors de l'affectation. Utiliser des valeurs d'enumération explicites permet de rendre le code plus lisible.
Les enums peuvent être divisés en valeurs associées et valeurs originales.
Valeurs associées | 原始值 |
---|---|
Types de données différents | Même type de données |
Exemple: enum {10,0.8,"Hello" | Exemple: enum {10,35,50} |
La création des valeurs est basée sur des constantes ou des variables | Valeurs préremplies |
Les valeurs associées sont définies lorsque vous créez un nouveau constant ou une nouvelle variable basée sur un membre de l'enumération, et chaque fois que vous le faites, ces valeurs peuvent être différentes. | Les valeurs originales sont toujours les mêmes |
Dans cet exemple, nous définissons un type enuméré nommé Student, qui peut être une chaîne de caractères (String) de Name ou une valeur correspondante de Mark (Int, Int, Int).
import Cocoa enum case . case . } var3codebox") var98,97,95) switch case . print("学生的名字是: ) case .1, let )2, let )3: print("学生的成绩是: )1)2)3)。) }
以上程序执行输出结果为:
学生的成绩是: 98,97,95。
原始值可以是字符串,字符,或者任何整型值或浮点型值。每个原始值在它的枚举声明中必须是唯一的。
在原始值为整数的枚举时,不需要显式的为每一个成员赋值,Swift会自动为你赋值。
例如,当使用整数作为原始值时,隐式赋值的值依次递增1。如果第一个值没有被赋初值,将会被自动置为0。
import Cocoa enum Month: Int { case January = 1, February, March, April, May, June, July, August, September, October, November, December } let yearMonth = Month.May.rawValue print("数字月份为: \(yearMonth)。")
以上程序执行输出结果为:
数字月份为: 5。