• [^] # Re: Scala

    Posté par . En réponse au journal Javascript plus rapide que python ! (une suite possible). Évalué à 2.

    Non. Typage statique c'est qu'une variable reste du même type tout au long de son cycle de vie. Typage dynamique c'est qu'une variable peut être réaffectée à n'importe quel type.

    Le duck typing c'est encore autre chose : le type est défini par un l'ensemble des méthodes et/ou attributs et leur signature d'un objet.

    Deux objets sont compatibles au niveau des types si ils sont compatibles au niveau de la signatures des méthodes, par exemple si t'as une fonction, ce qui est requis pour "variable" c'est d'avoir un type qui fournit la méthode cacul, et rien de plus. Son type est défini par ça -> elle fournit une méthode cacul.
    Ça peut être du typage statique si tu peux plus lui réaffecter n'importe quoi derrière, et c'est du "duck typing".

    fun fonction(variable) -> retourne variable.calcul()

    Regarde aussi inférence de types, c'est une technique qui permet de typer statiquement une variable à la compilation, même si quand tu écris ta méthode tu ne précise pas le type de ses paramètres. C'est une manière de faire de la généricité.