Swift Enumerations

Quando você adicionar recursos de Swift, enumerações tornam-se muito mais classe # 8208-like. Eles já não são apenas coleções de constantes porque eles agora podem ter suas próprias propriedades e funções.

Aqui está o que a enumeração Swift pode olhar como:

enum Parkplace: Int {case parque, piscina, bares, pista}

Com um pouco de respacing, no entanto, isto pode parecer muito com um clássico C enum:

enum Parkplace: Int {case trilha parkcase poolcase barscase}

Você pode atribuir um valor de enumeração de uma variável em Swift usando código como este:

deixe myPlace = ParkPlace.park

Se você incluir essa atribuição e tente imprimir meu lugar em um campo de jogos, você verá o valor # 147 Enum valor # 148- à direita.

Consulte a figura para exemplos de enumerações em parques utilizando variações sobre o código mostrado.

image0.jpg

Você pode revelar o valor subjacente de uma enumeração usando o intrínseco RawValue, como em esta linha de código:

println (myPlace.rawValue)

O resultado será # 147-0 # 148- porque, por padrão, os valores brutos de enumeração começam em zero e o resultado de uma println função é uma cadeia (daí as aspas).

Você pode atribuir os seus próprios valores brutos a enumeração dos casos. Por exemplo, você poderia arranjar a declaração como esta:

enum Parkplace: Int {case parkcase piscina = pista 25case barscase}

Aqui, .park ainda será de 0 por padrão. Contudo, .piscina é agora definida para 25, ea seqüência continua de lá. Assim, o seguinte trecho de código irá imprimir 26. Se você fosse definir bares a 99, pista automaticamente se tornaria 100.

deixe myPlace = ParkPlace.barsprintln (myPlace.rawValue)

É comum o uso de cordas em uma enumeração. Aqui está um exemplo em que os casos de enumeração têm cordas que lhes é atribuído.

enum Lugar: String {casepark = "parque", piscina = "piscina", bares = "bares de escalada", track1 = "pista de corrida", track2 = "pista de caminhada"}

Observe neste exemplo que há uma distinção entre os elementos de caso, que não são cotados cordas e os valores associados que são strings. Note também que em seu código os elementos de casos começam com um período em que você usá-los. O período não é usado na declaração.

.pista imprimiria 27.

menu