Wednesday, July 29, 2015

Kotlin Baby Steps

Try your kotlin code here.

Simple Try
========== 
 
fun main(args: Array<String>) {

    println("Hello, World!");
    println(sum(3,4));
    println(sumTest(5,5));
    println("Difference Test =>"+diffTest(8,3));
    println("Difference Test with out Unit =>"+diffTestWithoutUnitReturn(9,3));
    println(parseInt("25"))
    println("Array Size =>"+args.size());
}

public fun sum(a: Int, b: Int): Int {
    println("Value1=>"+a);
    println("Value2=>"+b);
    return a+b;
}

fun sumTest(a: Int, b: Int) = a+b;

fun diffTest(a: Int,b: Int) : Unit {
    println(a-b);
}

fun diffTestWithoutUnitReturn(a: Int, b: Int) {
    println("Diff =>" +(a-b));
}

fun parseInt(str: String): Int? {
    val str: Int? = str as? Int;
    return str;
}
 
 
Lambda - Hands on
=================
 
fun main(args : Array<String>) {
  println("Hello, world!")
  val sum = sumLambda(3,4)
  println("SumOfValue="+sum)
  val doubleValue = doubleTheSum(3,4,sumLambda)
  println("Double the sum="+doubleValue)
  //passing lambda expression directly to High order function
  val twoTimeVal = doubleTheSum(3,4,{a,b->((a+b)*2)})
  println(twoTimeVal);
  println("Cube numbers"+cubeNumbers);

  for(x in cubeNumbers) {
      println("Value of Cube=>"+x);
  }

  for(x in cubeNumbers.indices) {
      println("Value of Cube using indices =>"+cubeNumbers[x]);
  }
}


val sumLambda: (Int, Int) -> Int = {x,y -> x+y}

fun doubleTheSum(x: Int, y: Int,f:(Int, Int) -> Int) : Int {
  return f(x,y) * f(x,y);
} 
 
 
 
val numbers: Array<Int> = arrayOf(1,2,3,4)
//map function of an array is to apply the transformation into each individual elements of an array.
val cubeNumbers = numbers.map({x->x*x*x})