Sebastian Tellez
twitter: @gorrotowi
github: gorrotowi
blog: blog-gorrotowi.rhcloud.com
Statically typed programming language
for the JVM, Android and the browser
100% interoperable with Java
fun sum(a:Int, b:Int):Int{
return a + b
}
fun sum(a:Int, b:Int) = a + b
Extension functions
static boolean isMonday(Date date){
return date.getDay() = 1;
}
boolean monday = DateUtils.isMonday(date);
fun Date.isMonday():Boolean{
return getDay() == 1
}
val monday = date.isMonday()
fun isMonday():Boolean{
return day == 1
}
fun isMonday() = day == 1
Function Expressions
{x, y -> x + y}
val sum: (Int,Int) -> Int = {x,y -> x + y}
{x:Int, y:Int -> x + y}
val sum = {x:Int, y:Int -> x + y}
Function Expressions
fun apply(one:Int, two:Int, func:(Int, Int) -> Int):Int{
return func(one, two)
}
val sum = apply(4,2, {x, y -> x + y})
val difference = apply(4,2, {x, y -> x - y})
val sum = apply(4,2) {x, y -> x + y}
val difference = apply(4,2) {x, y -> x - y}
Function Expressions
fun Int.apply(other:Int, func:(Int, Int) -> Int):Int{
return func(this, other)
}
val sum = 4.apply(2) {x, y -> x + y}
val difference = 4.apply(2) {x, y -> x - y}
val sum = apply(4,2) {x, y -> x + y}
val difference = apply(4,2) {x, y -> x - y}
Function Expressions
fun Int.apply(func:(Int) -> Int):Int{
return func(this)
}
val double = 1.apply {x -> x * 2}
val double = 1.apply {it * 2}
Extension Function Expressions
db.beginTransaction();
try{
db.delete("users", "first_name = ?", new String[]{"Sebastian"});
db.setTransactionSuccessful();
} finally {
db.endTransaction();
}
fun SQLiteDatabase.inTransaction(func: () -> Unit){
beginTransaction()
try{
func()
setTransactionSuccessful()
} finally{
endTransaction()
}
}
db.inTransaction {
db.delete("users", "first_name = ?", arrayOf("Sebastian"))
}
Extension Function Expressions
fun SQLiteDatabase.inTransaction(func: (SQLiteDatabase) -> Unit){
beginTransaction()
try{
func(this)
setTransactionSuccessful()
} finally{
endTransaction()
}
}
db.inTransaction {
it.delete("users", "first_name = ?", arrayOf("Sebastian"))
}
Extension Function Expressions
fun SQLiteDatabase.inTransaction(func: SQLiteDatabase.() -> Unit){
beginTransaction()
try{
func()
setTransactionSuccessful()
} finally{
endTransaction()
}
}
db.inTransaction {
delete("users", "first_name = ?", arrayOf("Sebastian"))
}