lambda/function receiver fun unaryOp(num1: Int = 2, op: (Int) -> Int) { println(op(num1)) } Int = 2 unaryOp(2) { it*it ) unaryOp(2, {x -> x*2}) //a high order function with lambda/function receiver fun unaryOp(num1: Int = 2, op: (Int) -> Int) { println(op(num1)) }
null) { println(someChild.someValue) } } var myObject : String? mObject.someValue // this won't compile mObject?.someValue // this will compile mObject?.myChildObject?.someValue // this will compile mObject!!.someValue // this will compile if(someObject != null) { if(someObject.someChild != null) { println(someChild.someValue) } }
myVar: String = "Hello" val myNewVar: Int = 1 myVar = myNewVar as String // what will happen? val myVar: String = "Hello" val myNewVar: Int = 1 myVar = myNewVar as String // what will happen?
} class Person(val name : String = "SomeDefaultValue") { init { name = name.toSnackCase() } } open class Person() { } val Person = Person() class Person class Person() { } class Person(val name : String = "SomeDefaultValue") { init { name = name.toSnackCase() } } open class Person() { } val Person = Person() class Person(val name : String = "SomeDefaultValue") { init { name = name.toSnackCase() } }
} class Person(val name : String = "SomeDefaultValue") { init { name = name.toSnackCase() } } open class Person() { } class Person class Person() { } class Person(val name : String = "SomeDefaultValue") { init { name = name.toSnackCase() } } open class Person() { } val Person = Person()