48 lines
1 KiB
Text
48 lines
1 KiB
Text
package examples.showcase
|
|
|
|
import fmt
|
|
import strings
|
|
|
|
interface Greeter {
|
|
fun greet(name: String): String
|
|
}
|
|
|
|
class PrefixGreeter(val prefix: String): Greeter {
|
|
fun greet(name: String): String {
|
|
return prefix + " " + name
|
|
}
|
|
}
|
|
|
|
fun main() {
|
|
val greeter: Greeter = PrefixGreeter("hello")
|
|
println(greeter.greet("gotlin"))
|
|
|
|
val names = listOf<String>("ada", "linus")
|
|
val scores = mapOf<String, Int>("ada", 10, "linus", 8)
|
|
println(names)
|
|
println(scores)
|
|
|
|
val upper = strings.ToUpper("gotlin")
|
|
fmt.Println("interop:", upper)
|
|
|
|
val maybe: String? = null
|
|
if (maybe == null) {
|
|
println("null check works")
|
|
}
|
|
|
|
runBlocking {
|
|
val ready = Channel<String>()
|
|
launch {
|
|
delay(120)
|
|
ready.send("timer fired")
|
|
}
|
|
val message = ready.read()
|
|
println("channel says: " + message)
|
|
|
|
val answer = async<Int> {
|
|
delay(50)
|
|
return 42
|
|
}
|
|
fmt.Println("async value:", answer.await())
|
|
}
|
|
}
|