Premiers pas avec Kotlin à envoyer aux développeurs Java

Quand j'ai commencé à développer avec Kotlin, j'aimerais écrire un point sur lequel j'étais confus. Que les développeurs Java qui lisent cet article prennent un bon départ dans le développement Kotlin ...

Déclaration de variable

Déclarons une variable en Java.

int i = 0;

Si vous écrivez ceci à Kotlin

var i: Int = 0

Ce sera comme ça.

Alors qu'en est-il de var?

var et val

var (variable) Identique aux variables non finales Java. Il peut être réaffecté après l'initialisation.

val (value) Identique à Java avec final. Il ne peut pas être réaffecté après l'initialisation.

    val i: Int = 0
    i = 1 //Erreur de compilation

    var i: Int = 0
    i = 1 // OK

** Si possible, déclarez la variable avec «val» de réaffectation NG. N'utilisez var que lorsque vous en avez besoin. ** **

Par ailleurs, même dans le cas de «val», il n'est pas nécessaire d'initialiser au point de déclaration.

    val i: Int
    if (flag) {
        i = 1
    }
    else {
        i = 4
    }

Inférence de type

Kotlin a une inférence de type.

Si vous déclarez une variable sans utiliser l'inférence, c'est ↓

    val i: Int = 0

Vous pouvez omettre le type en utilisant l'inférence ↓

    val i = 0

Supposons le type du littéral.

val i = 0 // Int
val l = 0L // Long
val f = 0F // Float
val d = 0.0 // Double
val c = 'c' // Char
val str = "str" // String

Essayez de déduire la valeur de retour de la fonction.

fun getString(): String {
    return "kotlin"
}
val str = getString()
// val str:Vous n'êtes pas obligé d'écrire String

Il n'y a pas de «commutateur»

Kotlin n'a pas de «commutateur». Il y a plutôt «quand».

Traitons enum, qui représente un jour.

    enum class DayOfWeek {
        SUN, MON, TUE, WED, THU, FRI, SAT
    }

    val dayOfWeek: DayOfWeek = DayOfWeek.MON
    //Les samedis et dimanches sont bons, sinon mauvais
    when (dayOfWeek) {
        DayOfWeek.SUN -> println("Good!")
        DayOfWeek.SAT -> println("Good!")
        else -> println("Bad...")
    }

S'il y a deux expressions ou plus, vous pouvez les mettre entre { } ʻafter->`.

when { 
    `conditions` -> { `formule` }
}

Vous ne pouvez pas utiliser la clause break dans when. Pause par défaut. Si vous souhaitez gérer plusieurs conditions à la fois, séparez-les par des virgules.

    when (dayOfWeek) {
        DayOfWeek.SUN, DayOfWeek.SAT -> println("Good!")
        else -> println("Bad...")
    }

ʻIf, when et try` sont des expressions au lieu d'instructions

Puisque ʻif, when et try` sont des expressions, vous pouvez affecter le résultat à une variable ou le traiter comme la valeur de retour d'une fonction.

    val v = if (flag) {
        "I like Kotlin!"
    } else {
        "(T_T)"
    }

La dernière expression évaluée est le résultat de if. Si flag est vrai,"J'aime Kotlin!"Donnera l'expression if. Affecté à la variable «v».

L'exemple ci-dessus a exactement la même utilisation que l'opérateur ternaire Java. Il n'y a pas d'opérateurs ternaires dans kotlin.

// Java
String v = flag ? "I like Kotlin!" : "(T_T)";

Il n'y a pas de «vide»

Il n'y a pas de «vide» à Kotlin. Utilisez le type ʻUnit` pour représenter une fonction sans valeur de retour.

fun doSomething(): Unit {
  // doSomething
}

collection

Il existe des fonctions utiles qui créent des instances de List et Array.

    val list = listOf(0, 1, 2)
    val empty = emptyList<Int>()
    val arr = arrayOf('a', 'b', 'c')
    val empty = emptyArray<Char>()

XXXof () est une fonction d'argument de longueur variable qui vous permet de décrire les éléments d'une collection. La fonction ʻemptyXXX () `est utile pour générer des collections vides.

Moule produire 空produire
Array arrayOf() emptyArray()
List listOf() emptyList()
Set setOf() emptySet()
Map mapOf() emptyMap()

Si l'élément ne peut pas être déduit, vous devez spécifier un paramètre de type.

val numList = listOf<Number>(0.0F, 100, 1_000_000_000_000L)

Collection Mutable

Il existe deux types principaux de collections Kotlin. Une collection mutable et une collection immuable. La fonction ʻadd () qui ajoute un élément et la fonction remove () `qui le supprime n'existent que dans les collections Mutable.

Immutable Mutable
List MutalbeList
Set MutableSet
Map MutableMap

La fonction mutableXXXof () est utile pour générer des collections Mutable.

    val list = mutableListOf(0, 1, 2)
    list.add(3)

Les fonctions et les variables ne doivent pas nécessairement appartenir à une classe

Contrairement à Java, les fonctions et les variables Kotlin ne doivent pas nécessairement appartenir à une classe.

import com.package

//Fonctions n'appartenant pas à la classe
fun topLevelFunction() {
    // do something
}

//Variables n'appartenant pas à la classe
var topLevelVariable = 0

class Hoge {

}

Recommended Posts

Premiers pas avec Kotlin à envoyer aux développeurs Java
Classe Kotlin à envoyer aux développeurs Java
Kotlin's Class part.2 à envoyer aux développeurs Java
Fonctions de portée Kotlin à envoyer aux développeurs Java
Fonctions Kotlin et lambdas à envoyer aux développeurs Java
Premiers pas avec les bases de Java
Premiers pas avec Ruby pour les ingénieurs Java
Introduction à Java à partir de 0 Partie 1
Conseils d'interopérabilité avec Kotlin à envoyer aux développeurs Java
La sécurité Null de Kotlin à envoyer aux développeurs Java
Revenir au début, démarrer avec Java ② Instructions de contrôle, instructions de boucle
Liens et mémos pour démarrer avec Java (pour moi-même)
Premiers pas avec DBUnit
Premiers pas avec Swift
Premiers pas avec Doma - Introduction à l'API Criteria
Premiers pas avec Doma-Transactions
Prise en main des programmes Java à l'aide de Visual Studio Code
Je veux faire des transitions d'écran avec kotlin et java!
Premiers pas avec les anciens ingénieurs Java (Stream + Lambda)
Premiers pas avec le traitement Doma-Annotation
Java pour jouer avec Function
Connectez-vous à DB avec Java
Connectez-vous à MySQL 8 avec Java
Premiers pas avec JSP et servlet
Premiers pas avec Spring Boot
Premiers pas avec les modules Ruby
Revenir au début et démarrer avec Java ① Types de données et modificateurs d'accès
Premiers pas avec Java et création d'un éditeur Ascii Doc avec JavaFX
Comment utiliser le modèle entraîné Tensorflow 2.0 avec Kotlin / Java
Un développeur Java de première année chez udemy a essayé de se lancer avec PHP
Je veux faire une liste avec kotlin et java!
Je veux créer une fonction avec kotlin et java!
Je veux implémenter diverses fonctions avec kotlin et java!
Mémo: Kotlin + Room + RecyclerView + DataBinding (Partie 2)
Kotlin's Class part.2 à envoyer aux développeurs Java
Java pour apprendre avec les ramen [Partie 1]
Premiers pas avec Java_Chapitre 5_Exercices pratiques 5_4
[Java] Points à noter avec Arrays.asList ()
Osez défier Kaggle avec Java (1)
J'ai essayé d'interagir avec Java
[Google Cloud] Premiers pas avec Docker
Premiers pas avec Docker avec VS Code
Génériques Kotlin pour les développeurs Java
Java, des tableaux pour débuter avec les débutants
CompletableFuture Getting Started 2 (Essayez de faire CompletableFuture)
[Android] Convertir le code Java Android en Kotlin
Je veux revenir à l'écran précédent avec kotlin et java!
Ce à quoi j'ai pensé lorsque j'ai commencé à migrer de Java vers Kotlin
Premiers pas avec Doma-Criteria API Cheet Sheet
[Java] Résumez comment comparer avec la méthode equals
Convertir toutes les applications Android (Java) en Kotlin
[Note] Comment démarrer avec Rspec
Premiers pas avec Docker pour Mac (installation)
Introduction aux algorithmes avec java-Search (recherche prioritaire en profondeur)
Introduction au test de paramétrage dans JUnit
Premiers pas avec Ratpack (4) - Routage et contenu statique
Introduction à kotlin pour les développeurs iOS ⑥ ー création de kotlin
Démarrez avec le fonctionnement de JVM GC
Java: Comment envoyer des valeurs du servlet au servlet
[Kotlin] Supprimer les fichiers en double [Java]