Vérifier le type d’un objet
Au sein de la fonction eatAnimal, nous souhaitons à présent savoir si l’animal que nous sommes en train de manipuler est un chien ou un chat. C’est tout à fait possible grâce aux conditions et au mot-clé is (est). Ce mot-clé doit être suivi du nom de la classe à tester. is
Ainsi, nous pouvons créer les instructions suivantes : "si l’animal est un chien" ou "si l’animal est un chat".
En guise d’exemple, écrivons une fonction guessAnimal qui accepte un paramètre de type Animal et qui affiche le mot dog dans le terminal si le paramètre est de type Dog ou le mot cat si c’est un chat :
fun main()
{
val dog = Dog(4, "Doggo", "labrador", "brown", 180, 12.5f, 's')
val cat = Cat(2, "Kitty", "Persan", "grey", 37, 6.21f)
guessAnimal(dog)
guessAnimal(cat)
}
fun guessAnimal(animal: Animal)
{
if (animal is Dog)
{
println("dog")
}
else if (animal is Cat)
{
println("cat")
}
}
Il est également possible d’utiliser la structure when pour obtenir le même résultat :
fun guessAnimal(animal: Animal)
{
when(animal)
{
is...