Siete habilidades de desarrollo de Kotlin que necesitas saber

¡Acostúmbrate a escribir juntos! Este es el día 15 de mi participación en el "Desafío de actualización de abril del nuevo plan diario de Nuggets", haga clic para ver los detalles del evento .

1. bucle for en kotlin

  • El primero..
for (i in 0..5) {
    println(i)
}
复制代码

正序Salida: 0 1 2 3 4 5, que es un intervalo cerrado por la izquierda y cerrado por la derecha

  • el segundountil
for (i in 0 until 5) {
    println(i)
}
复制代码

正序Salida: 0 1 2 3 4, que es un intervalo cerrado por la izquierda y abierto por la derecha

  • El tercerodownTo
for (i in 5 downTo 0) {
    println(i)
}
复制代码

倒序Salida: 5 4 3 2 1 0, que es un intervalo cerrado por la izquierda y cerrado por la derecha

  • el cuartostep

Esto es con un tamaño de paso, como:

for (i in 0 until 5 step 2) {
    println(i)
}
复制代码

Salida: 0 2 4puede ver que el tamaño del paso se establece en 2 y la salida es cada 2

  • Quinta Escuela Intermediazip
for((i, j) in (1..5).zip(5..10))  {
    println("$i -- $j")
}
复制代码

zipSe admiten dos parámetros, consulte el resultado:

imagen.png

2. useFunción de extensión

Por lo general, lea y escriba desde el flujo de salida y entrada del archivo, debe llamar al método para cerrar el flujo de salida o entrada después de que se complete la lectura y escritura para closeevitar una excepción, pero el requisito es un requisito, y existe la probabilidad de Falta escritura durante el desarrollo del programa.

Entonces, kotlin proporciona un usermétodo de extensión para ayudarnos a cerrar la transmisión, primero observe el uso:

File("").outputStream().use {
}
复制代码

Después de su uso use, no es necesario que el programa cierre manualmente la transmisión. Mire el usecódigo fuente:

imagen.png

De la misma manera, la base de datos de lectura y escritura cursortambién admite el uso de use.

3. Selladosealed class

Una clase sellada se define de la siguiente manera:

sealed class Kit {
    data class H(val name: String = "")
    data class O(val age: Int = 0)
    data class L(val show: Boolean = false)
}
复制代码

De hecho, las clases selladas son muy similares a las clases y enumeraciones abstractas, pero hay dos ventajas que son significativamente diferentes de las clases y enumeraciones abstractas:

  • Jerarquía de estructura de clases (en comparación con las clases abstractas)

La clase de implementación concreta de la clase abstracta se puede definir en varias ubicaciones en el paquete, lo cual es muy inconveniente de administrar, mientras que la clase sellada tiene una estructura jerárquica, es decir, 密封类的子类只能和密封类定义在同一个类文件中. Por supuesto, las versiones posteriores a Kotlin 1.4 no serán tan restrictivas.

  • Los objetos de subclase admiten la creación dinámica (en comparación con la enumeración)

La forma más segura de implementar un singleton en Java es usar una implementación de enumeración. El contenido de cada elemento de la declaración de enumeración es fijo y los parámetros no se pueden pasar de forma externa. y密封类的子类可以声明为object,这个效果就和枚举元素一样,也可以声明为普通的class,可以外部进行传参创建类的对象

Supongo que te gusta

Origin juejin.im/post/7087029690250035236
Recomendado
Clasificación