More Related Content Similar to Kotlin v1.1.2 (20) More from Víctor Bolinches More from Víctor Bolinches (6) Kotlin v1.1.2 7. 7
Kotlin
• Constructors
• Functions
• Properties
• Operators, Control flow…
• Data Class
• Singleton
• Nullable values & checking
• Auto Castings
• Extension Functions
• Lambdas
Basic syntax - Kotlin/JVM
8. 8
Kotlin
• Coding Dojo : FizzBuzz
• Level: Easy
• TDD, BabySteps
• Migration with Kotlin
• Refactorings with characteristics of Kotlin
• Example with Kotlin/JS
Practice
9. 9
Kotlin
Practice – FizzBuzz Java
public class FizzBuzz{
public static void main(String[] args){
invoke();
}
public static void invoke(){
for(int i= 1; i <= 100; i++){
String str = "";
if(i % 3 == 0) str += "Fizz ";
if(i % 5 == 0) str += "Buzz ";
if(str.equals("")) str+= i;
System.out.print(str);
}
}
}
Result:
1 2 Fizz 4 Buzz Fizz 7 8 Fizz Buzz 11 Fizz 13 14 FizzBuzz 16 17 … 97 98 Fizz Buzz
Time: 6,199,220 ns
10. 10
Kotlin
Practice – FizzBuzz migrated with kotlin
object FizzBuzz {
@JvmStatic fun main(args: Array<String>) {
invoke()
}
fun invoke() {
for(i in 1..100) {
var str = “”
if(i % 3 == 0 ) str+= “Fizz”
if(i % 5 == 0 ) str+= “Buzz”
if(str == “” ) str+= i
println(str + “”)
}
}
}
Result:
1 2 Fizz 4 Buzz Fizz 7 8 Fizz Buzz 11 Fizz 13 14 FizzBuzz 16 17 … 97 98 Fizz Buzz
Time: 3,818,510 ns
11. 11
Kotlin
Practice – FizzBuzz Kotlin
class FizzBuzz {
@JvmStatic fun main(args: Array<String>) {
for(i in 1 .. 100)
invoke(i)
}
fun invoke(i: Int) = when {
i % 15 == 0 -> “FizzBuzz ”
i % 3 == 0 -> “Fizz ”
i % 5 == 0 -> “Buzz ”
else -> “$i “
}
Result:
1 2 Fizz 4 Buzz Fizz 7 8 Fizz Buzz 11 Fizz 13 14 FizzBuzz 16 17 … 97 98 Fizz Buzz
Time: 1,595,322 ns
12. 12
Kotlin
Practice – FizzBuzz Kotlin/JS
import kotlin.browser.document
fun main(args:Array <String>) {
printText("h1", { "Hello World Kotlin Java Script!" } )
printText("h6", { fizzBuzzRecursive (100) } )
}
fun printText(element: String, invoke : () -> String ) {
val h = document.createElement(element)
h.textContent = invoke()
document.body!!.appendChild(h)
}
fun fizzBuzzRecursive (i: Int ) : String {
if(i == 0 )
return ""
val str = when {
i % 15 == 0 -> "FizzBuzz "
i % 3 == 0 -> "Fizz "
i % 5 == 0 -> "Buzz "
else -> "$i n"
}
return fizzBuzzRecursive (i-1).plus(str)
}