Upgrade to Pro — share decks privately, control downloads, hide ads and more …

Kotlin 1.1

Kotlin 1.1

Slides da apresentação sobre as atualizações do Kotlin 1.1

José Caique Oliveira

March 23, 2017
Tweet

More Decks by José Caique Oliveira

Other Decks in Programming

Transcript

  1. › Possível definir subclasse dentro do mesmo arquivo › Data

    class agora podem extender outras classes Sealed e data class
  2. sealed class Expr data class Const(val number: Double) : Expr()

    data class Sum(val e1: Expr, val e2: Expr) : Expr() object NotANumber : Expr() fun eval(expr: Expr): Double = when (expr) { is Const -> expr. number is Sum -> eval(expr. e1) + eval(expr. e2) NotANumber -> Double. NaN } val e = eval(Sum(Const( 1.0), Const(2.0))) Sealed e data class
  3. › Provê alternativas para nomes de tipos existentes Type aliases

    class Outer { class Nested { inner class Inner } } typealias Something = Outer.Nested.Inner
  4. › Possível referenciar um método ou propriedade da instância de

    objeto particular Bound function e property reference val numberRegex = "\\d+".toRegex() println(numberRegex.matches( "29")) // prints "true" val isNumber = numberRegex ::matches println(isNumber( "29")) // prints "true"
  5. data class Person(val name: String, val age: Int) class B(person:

    Person) { init { val (name, age) = person println(name) println(age) } } map.forEach { (key , value) -> println( "$value!") } Desestrutura em Lambda
  6. › Paramêtros não utilizado numa lambda podem ser substituídos por

    _ _ Parâmetros não usados map.forEach { key , value -> println( "$value!") } map.forEach { _ , value -> println( "$value!") }
  7. _ em literais › Java 8 val oneMillion = 1_000_000

    val hexBytes = 0xFF_EC_DE_5E val bytes = 0b11010010_01101001_10010100_10010010
  8. Manipulação de array val array = arrayOf("a", "b", "c") println(array.toString())

    // [Ljava.lang.String;@5305068a println(array.contentToString()) // [a, b, c]
  9. minOf e maxOf val list1 = listOf("a", "b") val list2

    = listOf("x", "y", "z") val minSize = minOf(list1.size, list2.size) val longestList = maxOf(list1, list2, compareBy { it.size })
  10. Suporte javascript Todos os recursos de linguagem no Kotlin 1.1,

    incluindo as coroutines, funcionam em JVM/Android e JavaScript. Isto significa que uma aplicação web pode ser escrita inteiramente em Kotlin › Kotlin está disponível para uso através de npm
  11. O que vem por aí... › Próximo versão focada em

    manutenção, melhorias de desempenho, correções de bugs › Suporte ao java 9 antes do lançamento › Suporte a embarcados › Suporte ao iOS