while writing code in production • JetBrains support • how does kotlin coexist with android? • I don’t need kotlin…it’s only syntactic sugar • why only Android?
{ fun methodB() } class ImplA(val x: Int) : InterfaceA { override fun methodA() { print(x) } } class ImplB(val x: Int) : InterfaceB { override fun methodB() { print(x) } } class AandB(a: InterfaceA, b: InterfaceB) : InterfaceA by a, InterfaceB by b
} public class XingUser { private final int id; private final String name; private final String email; public static class Builder { private final int id; private final String name; private String email = ""; public Builder(int id, String name) { this.id = id; this.name = name; } public Builder email(String email) { this.email = email; return this; } public XingUser build() { return new XingUser(this); } } private XingUser(Builder builder) { id = builder.id; name = builder.name; email = builder.email; } } https://github.com/dbacinski/Design-Patterns-In-Kotlin
} public class XingUser { private final int id; private final String name; private final String email; public static class Builder { private final int id; private final String name; private String email = ""; public Builder(int id, String name) { this.id = id; this.name = name; } public Builder email(String email) { this.email = email; return this; } public XingUser build() { return new XingUser(this); } } private XingUser(Builder builder) { id = builder.id; name = builder.name; email = builder.email; } } class XingUser(val id: Int, val name: String, val email: String = "", val premium: Boolean = false) https://github.com/dbacinski/Design-Patterns-In-Kotlin
fun printString(string: String) = println(stringStrategy.invoke(string)) } val lowerCasePrinter = Printer({ it.toLowerCase() }) val prefixPrinter = Printer({ "Prefix: " + it }) prefixPrinter.printString("Hello world") //Prefix: Hello world lowerCasePrinter.printString("HELLO WORLD") //hello world
val city: String, val country: String) val user = User("Cristian", 31, "bcn", "Spain") val user2 = user.copy(city = "Madrid") val listFUsers = listOf(user, user2) for ((name, age, city, country) in listFUsers) { println("Hi! $name from $city, $country") } val (age) = user println("Hi $age") //Hi Cristian
val city: String, val country: String) val salute = Pair("Hola", "Hi") println(salute.first)// Hola val (spanish, english) = salute println(spanish)// Hola val user = User("Cristian", 31, "bcn", "Spain") val user2 = user.copy(city = "Madrid") val listFUsers = listOf(user, user2) for ((name, age, city, country) in listFUsers) { println("Hi! $name from $city, $country") } val (age) = user println("Hi $age") //Hi Cristian