O que o operador ?: faz em Kotlin? (Elvis Operator)
Olá a todos! Recentemente comecei a aprender Kotlin e me deparei com um operador estranho `?:`. Vi ele em código de outras pessoas, mas não consigo entender o que ele faz.\n\nPor exemplo, tem este código:\n\n```kotlin\nval name: String? = null\nval result = name ?: "Unknown"\n```\n\nEu entendo que `String?` significa que a variável pode ser null. Mas o que `?:` faz? Por que `result` se torna "Unknown", mesmo `name` sendo null? Em Java eu escreveria `if (name != null) name else "Unknown"`, mas aqui é apenas um símbolo.\n\nPor favor, expliquem em palavras simples como este operador funciona e mostrem exemplos. Também tenho curiosidade se ele pode ser usado não apenas com valores simples, mas também com funções? E existem algumas armadilhas?\n\nAgradeço desde já!