Trabajar con una función dentro de una enumeración rápida

Con el mismo código básico, puede agregar una función a una enumeración en Swift. Esto es algo que no has visto en C y tal vez no sea en otros idiomas. Es una nueva forma de ver las enumeraciones.

Adición de una función simple de una enumeración

Esta es la función que se agrega a la enumeración. Se puede colocar en cualquier lugar (excepto, por supuesto, no en el medio de la caso):

Video: Administración de almacenes 2 - Responsabilidades del Almacenista

 func enumFunction () -gt; Int} {return -17

La función se llama enumFunction y devuelve una Int con el valor de -17. Se puede acceder a esta función desde cualquier instancia de la enumeración. Aquí está un ejemplo:

Video: Curso Excel Básico en Español

Sea I = Place.bars.enumFunction ()

Usted puede estar pensando, “Espera un momento. Esa enumeración es de tipo cadena y por lo que debe devolver una cadena “.

Eso es cierto, pero no se están refiriendo al valor devuelto por la enumeración. Usted está pidiendo un miembro de la enumeración (ni siquiera una instancia de la enumeración) para devolver el resultado de enumFunction, la cual está declarada como Int.

La adición de una sentencia switch para una función dentro de una enumeración

enumeraciones Swift se utilizan a menudo en combinación con cambiar declaraciones. Aquí es una función para colocar dentro de la enumeración que contiene una cambiar declaración. Cuando usted tiene una instancia de una enumeración (o simplemente la enumeración en sí), puede llamar a una función interna de un elemento de la manera que viste en el fragmento de código anterior. Y, como el fragmento de código anterior, el resultado devuelto por la función no tiene que ser del mismo tipo que el tipo de la enumeración.

En el siguiente código de una función que devuelve una Cuerda se basa en el resultado de una cambiar declaración que utiliza los elementos de la enumeración. Tenga en cuenta que los elementos de la cambiar No son cadenas (tenga en cuenta la ausencia de comillas y la presencia de los principales períodos de la caso nombres).

Experimento con este código, y verá que si se establece el tipo de la enumeración de Int (o Doble o que no sea de cadena) nada la función todavía devolverá una Cuerda. Ese es el resultado de la función y no el tipo de la enumeración. Esta es una técnica muy útil para usar, y muchos desarrolladores encuentran que reduce drásticamente el código que tiene que escribir. (Aquellos if-then-else-if sentencias dentro de caso del interruptor declaraciones se pueden omitir, como puede cambiar declaraciones dentro caso declaraciones).

Video: Access 2010 Calculos con Fechas Sesion de Trabajo 18

func enumChoiceFunction () -gt; Cadena {{auto interruptor .track1 caso, pista2: el regreso "correr o caminar".park caso: el regreso "Caminando, sentado en un banco, alimentación de las aves"por defecto: el regreso "disfruta de la naturaleza"}}

La figura muestra el código descrito aquí.

Video: Dominio de una función #1

El código en sí mismo se proporciona aquí:

enumeración Lugar: String {casepark = "parque", Piscina = "piscina", Bares = "barras de escalada", TRACK1 = "pista de carreras", Track2 = "pista para caminar"estática Let instalaciones = [parque, piscina, bares, pista1, pista2] func enumFunction () -gt; Int {return} -17 enumChoiceFunction func () -gt; Cadena {{auto interruptor .track1 caso, pista2: el regreso "correr o caminar".park caso: el regreso "Caminando, sentado en un banco, alimentación de las aves"por defecto: el regreso "disfruta de la naturaleza"}}} Sea I = Place.bars.enumFunction () Sea E = Place.pool.rawValueprintln (Place.pool) sea x = Place.track1.enumChoiceFunction () var result: String = "para equipamiento en Place.facilities {resultado = resultado + amenity.rawValue + ", "} Println (resultado)
Artículos Relacionados