Assignment Help logo
Chat en direct

Loading...

Score %0 (0 correct0 incorrect20 unanswered)

Q1. Vous aimeriez imprimer chaque score sur sa propre ligne avec sa position cardinale. Sans utiliser var ni val, quelle méthode permet l'itération avec à la fois la valeur et sa position?

fun main() {
  val highScores = listOf(4000, 2000, 10200, 12000, 9030)
}
  • .withIndex()
  • .forEachIndexed()
  • .forEach()
  • .forIndexes()

référence

Q2. Lorsque la classe Airplane est instanciée, elle affiche Aircraft = null, et non Aircraft = C130. Pourquoi ?

abstract class Aircraft {
  init { println("Aircraft = ${getName()}") }
  abstract fun getName(): String
}
class Airplane(private val name: String) : Aircraft() {
  override fun getName(): String = name
}
  • Les classes sont initialisées dans le même ordre qu'elles apparaissent dans le fichier, donc Aircraft devrait apparaître après Airplane.
  • Le code doit transmettre le paramètre au constructeur primaire de la classe de base. Comme ce n'est pas le cas, il reçoit un null.
  • La fonction abstraite retourne toujours null.
  • Une superclasse est initialisée avant sa sous-classe. Par conséquent, le nom n'a pas été défini avant d'être rendu.

référence discussion

Q3. Les interfaces et les classes abstraites Kotlin sont très similaires. Qu'est-ce qu'une classe abstraite peut faire qu'une interface ne peut pas ?

  • Seules les classes abstraites peuvent être héritées par des sous-classes.
  • Seules les classes abstraites peuvent hériter de plusieurs superclasses.
  • Seules les classes abstraites peuvent avoir des méthodes abstraites.
  • Seules les classes abstraites peuvent stocker un état.

référence

Q4. À l'intérieur d'une fonction d'extension, quel est le nom de la variable correspondant à l'objet récepteur ?

  • La variable est nommée it.
  • La variable est nommée this.
  • La variable est nommée receiver.
  • La variable est nommée default.

référence

Q5. Votre application possède une fonction add. Comment pourriez-vous utiliser ses méthodes invoke et afficher les résultats ?

fun add(a: Int, b: Int): Int {
  return a + b
}
  • println(add(5,10).invoke())
  • println(::add.invoke(5, 10))
  • println(::add.invoke{5, 10})
  • println(add.invoke(5,10))

référence

Q6. Quel est le point d'entrée d'une application Kotlin ?

  • fun static main(){}
  • fun main(){}
  • fun Main(){}
  • public static void main(){}

Q7. Vous écrivez une application console en Kotlin qui traite des tests saisis par l'utilisateur. Si l'utilisateur entre une chaîne vide, le programme se termine. Quel type de boucle conviendrait le mieux pour cette application ? Gardez à l'esprit que la boucle est entrée au moins une fois.

  • Une boucle do..while
  • Une boucle for
  • Une boucle while
  • Une boucle forEach

référence

Q8. Vous passez un entier à une fonction attendant un type Any. Cela fonctionne sans problème. Pourquoi un entier primitif peut-il fonctionner avec une fonction qui attend un objet ?

fun showHashCode(obj: Any){
  println("${obj.hashCode()}")
}
fun main() {
  showHashCode(1)
}
  • Bien que le code s'exécute, il ne produit pas de résultats corrects.
  • L'entier est toujours une classe.
  • Le compilateur exécute une méthode implicite .toClass() sur l'entier.
  • L'entier est autoboîté en une classe Kotlin Int.

référence

Q9. Vous avez lancé une coroutine de longue durée dont le travail a été assigné à une variable nommée task. Si nécessaire, comment pourriez-vous interrompre la coroutine ?

val task = launch {
  // long running job
}
  • task.join()
  • task.abort()
  • job.stop()
  • task.cancel()

référence

Q10. Vous essayez d'assigner une variable entière à une variable longue, mais le compilateur Kotlin signale une erreur. Pourquoi ?

  • Vous devez envelopper toutes les conversions implicites dans un bloc try/catch.
  • Vous ne pouvez attribuer que Long à un Int, pas l'inverse.
  • Il n'y a pas de conversion implicite de Int en Long.
  • Tous les entiers en Kotlin sont de type Long.

référence

Q11. Vous avez écrit un extrait de code pour afficher les résultats du jet d'un dé à six faces. Lorsque le dé affiche de 3 à 6 inclusivement, vous souhaitez afficher un message spécial. En utilisant une plage Kotlin, quel code devriez-vous ajouter ?

when (die) {
 

 1 -> println("le dé est 1")
  2 -> println("le dé est 2")
  ___ -> println("le dé est entre 3 et 6")
  else -> println("le dé est inconnu")
}
  • 3,4,5,6
  • in 3..6
  • 3 : 6
  • {3,4,5,6}

référence

Q12. La fonction typeChecker reçoit un paramètre obj de type Any. En fonction du type de obj, elle imprime des messages différents pour les types Int, String, Double et Float ; si aucun de ces types n'est mentionné, elle imprime "type inconnu". Quel opérateur vous permet de déterminer le type d'un objet ?

  • instanceof
  • is
  • typeof
  • as

référence

Q13. Ce code ne produit aucune sortie dans la console. Qu'est-ce qui ne va pas ?

firstName?.let {
  println("Bonjour $firstname!")
}
  • Une exception de pointeur nul est levée.
  • firstName est égal à null.
  • firstName est égal à une chaîne vide.
  • firstName est égal à Boolean false.

référence

Q14. Vous avez une fonction simple() qui est appelée fréquemment dans votre code. Vous placez le préfixe inline sur la fonction. Quel effet cela a-t-il sur le code ?

inline fun simple(x: Int): Int{
  return x * x
}

fun main() {
  for(count in 1..1000) {
    simple(count)
  }
}
  • Le code donnera une erreur de dépassement de pile.
  • Le compilateur avertit d'un impact de performance insignifiant.
  • Le compilateur avertit d'une utilisation de mémoire significative.
  • Le code est significativement plus rapide.

référence

Q15. Comment remplir le vide ci-dessous pour afficher tous les nombres pairs de 1 à 10 avec le moins de code possible ?

for (_____) {
  println("Il y a $count papillons.")
}
  • count in 1..10
  • count in 2..10 step 2
  • count in 1..10 % 2
  • var count=2; count <= 10; count+=2

référence

Q16. Quelle valeur est imprimée par println() ?

val set = setOf("pomme", "poire", "orange", "pomme")
println(set.count())
  • 3
  • 4
  • 1
  • 5

référence

Q17. Quelle ligne de code montre comment afficher la longueur d'une chaîne nullable et affiche 0 au lieu de null ?

  • println(b!!.length ?: 0)
  • println(b?.length ?: 0)
  • println(b?.length ?? 0)
  • println(b == null? 0: b.length)

Q18. Dans le fichier main.kt, vous filtrez une liste d'entiers et souhaitez utiliser une fonction existante, removeBadValues. Quelle est la bonne façon d'appeler la fonction depuis filter dans la ligne ci-dessous ?

val list2 = (80..100).toList().filter(_____)
  • ::removeBadValues
  • GlobalScope.removeBadValues()
  • Mainkt.removeBadValues
  • removeBadValues

référence

Q19. Quel extrait de code montre correctement une boucle for utilisant une plage pour afficher "1 2 3 4 5 6" ?

  • for(z in 1..7) println("$z ")
  • for(z in 1..6) print("$z ")
  • for(z in 1 to 6) print("$z ")
  • for(z in 1..7) print("$z ")

référence

Q20. Vous mettez à niveau une classe Java en Kotlin. Que devez-vous utiliser pour remplacer les champs statiques de la classe Java ?

  • un objet anonyme
  • une propriété statique
  • un objet compagnon
  • un champ de sauvegarde