Kotlin Hello World
Yesterday I did a Hello World in Kotlin following the first free chapter of the book Kotlin in Action:
1 data class Person(val name:String, val age: Int? = null) 2 3 fun main(args: Array<String>) { 4 5 val persons = listOf(Person("Alice", age=35), Person("Bob", age=27)) 6 val oldest = persons.maxBy { it.age ?: 0 } 7 8 println("The oldest is: $oldest") 9 }
Using this nice web IDE for experimentation: try.kotlinlang.org there is an option to see the kotlin source code converted to Javascript:
1 Kotlin.out.flush(); 2 (function (Kotlin) { 3 'use strict'; 4 var _ = Kotlin.defineRootPackage(null, /** @lends _ */ { 5 Person: Kotlin.createClass(null, function (name, age) { 6 if (age === void 0) 7 age = null; 8 this.name = name; 9 this.age = age; 10 }, /** @lends _.Person.prototype */ { 11 component1: function () { 12 return this.name; 13 }, 14 component2: function () { 15 return this.age; 16 }, 17 copy_bm4lxs$: function (name, age) { 18 return new _.Person(name === void 0 ? this.name : name, 19 age === void 0 ? this.age : age); 20 }, 21 toString: function () { 22 return 'Person(name=' + Kotlin.toString(this.name) + (', age=' + 23 Kotlin.toString(this.age)) + ')'; 24 }, 25 hashCode: function () { 26 var result = 0; 27 result = result * 31 + Kotlin.hashCode(this.name) | 0; 28 result = result * 31 + Kotlin.hashCode(this.age) | 0; 29 return result; 30 }, 31 equals_za3rmp$: function (other) { 32 return this === other || (other !== null && (typeof other === 'object' && 33 (Object.getPrototypeOf(this) === Object.getPrototypeOf(other) && 34 (Kotlin.equals(this.name, other.name) && 35 Kotlin.equals(this.age, other.age))))); 36 } 37 }), 38 main_kand9s$: function (args) { 39 var oldest; 40 var persons = Kotlin.modules['stdlib'].kotlin.collections.listOf_9mqe4v$( 41 [new _.Person('Alice', 35), new _.Person('Bob', 27)]); 42 maxBy_l82ugp$break: { 43 var iterator = persons.iterator(); 44 if (!iterator.hasNext()) { 45 oldest = null; 46 break maxBy_l82ugp$break; 47 } 48 var maxElem = iterator.next(); 49 var tmp$0; 50 var maxValue = (tmp$0 = maxElem.age) != null ? tmp$0 : 0; 51 while (iterator.hasNext()) { 52 var e = iterator.next(); 53 var tmp$1; 54 var v = (tmp$1 = e.age) != null ? tmp$1 : 0; 55 if (Kotlin.compareTo(maxValue, v) < 0) { 56 maxElem = e; 57 maxValue = v; 58 } 59 } 60 oldest = maxElem; 61 } 62 Kotlin.println('The oldest is: ' + Kotlin.toString(oldest)); 63 } 64 }); 65 Kotlin.defineModule('moduleId', _); 66 _.main_kand9s$([]); 67 }(Kotlin)); 68 69 Kotlin.out.buffer;That is cool to see.