MarTech Trend 2024 Book : Marketing Technology Trends (2024 Edition) How Data...
Introduction to Kotlin
1.
2. KOTLIN
2010 - Work Started
2011 - Announced
2016 - 1.0 release
2017 - 1.1 release
Official Android First Class Language
3.
4. Why use KOTLIN
• Data class
• Extension function
• High order function
• Inter-operable with java
• Null safety
• Smart cast
• Default and named arguments
• Mult-value return from function
6. Basic Syntax
int age = 10;
final int myAge = 10;
Variables and constants in Java
Variables and constants in Kotlin
var age =10
val myAge=10
var age:Int=10
val myAge:Int=10
val myAg1e
Type inference
Manual Type
//compiler error
7. String
• Kotlin have two type of string literals
Escaped String Raw String
val s = "Hello world!n"
val text = """ for
(c in "foo")
print(c) """
8. Functions in Kotlin
• Function having two Int parameters with Int return type:
• Function with an expression body and inferred return type:
• Function returning no meaningful value:
• Unit return type can be omitted:
fun sum(a: Int, b: Int): Int {
return a + b
}
fun sum(a: Int, b: Int) = a + b
fun printSum(a: Int, b: Int): Unit {
println("sum of $a and $b is ${a + b}")
}
fun printSum(a: Int, b: Int) {
println("sum of $a and $b is ${a + b}")
}
9. Classes
• Classes are declared using class keyword
• Primary constructor
class Invoice{
}
class Person(val firstName:String, val lastName:String, var age:Int){
}
10. Java Beans
public class Person {
private String name,age;
public String getName() {
return name;
}
public void setName(String name) {
this.name = name;
}
public String getAge() {
return age;
}
public void setAge(String age) {
this.age = age;
}
@Override
public boolean equals(Object o) {
if (this == o) return true;
if (o == null || getClass() !=
o.getClass()) return false;
Person person = (Person) o;
if (name != null ?
!name.equals(person.name) :
person.name != null) return false;
return age != null ?
age.equals(person.age) : person.age ==
null;
}
@Override
public int hashCode() {
int result = name != null ?
name.hashCode() : 0;
result = 31 * result + (age != null ?
age.hashCode() : 0);
return result;
}
@Override
public String toString() {
return "Person{" +
"name='" + name + ''' +
", age='" + age + ''' +
'}';
}
}
11. Same Java class in Kotlin
data class Person(val name: Sring, val age: Int)
12. Higer Order Functions
A higher-order function is a function that takes functions as parameters, or
returns a function.
fun apply(one:Int,two:Int,func:(Int,Int)->Int):Int{
return func(one,two)
}
println(apply(1,2,{a,b->a*b}))
println(apply(1,2,{a,b->a*2-3*b}))
13. Null Safety
• No more NullPointerException
• Kotlin’s type system is aimed to eliminate this forever.
14. var a:String="abc"
a=null //compile error
var b:String?="abc"
b=null // ok
val len=b.length //compile error
//You could expicitly check if b is null, and handle the options
separately
val len = if (b != null) b.length else -1
// or
val length = b?.length