Skip to content

Commit 010578b

Browse files
committed
kotlin - beginning
1 parent 64b0e3b commit 010578b

File tree

5 files changed

+180
-0
lines changed

5 files changed

+180
-0
lines changed

kotlin/.gitignore

Lines changed: 3 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,3 @@
1+
*.jar
2+
/*.jar
3+
*/bin*

kotlin/essentials/control_flow.kt

Lines changed: 88 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,88 @@
1+
package essentials.control_flow
2+
3+
// Ternary equivalent is if and else
4+
// Switch-case equivaltent is when-in and default is given by else
5+
6+
private fun ternary_and_case () {
7+
val a = 100
8+
val b = 10
9+
val greater = if (a > b) a else b
10+
println("Greater: ${greater}")
11+
12+
val exp = 10
13+
val expGroup = when (exp) {
14+
in 0..2 -> "Associate"
15+
in 3..6 -> "Mid-Senior"
16+
in 6..10 -> "Senior"
17+
in 10..15 -> "Staff"
18+
else -> "Senior-Staff"
19+
}
20+
println("Experience: ${exp}, Group: ${expGroup}")
21+
22+
val num = 5
23+
when (num%2) {
24+
0 -> println("${num} is even")
25+
1 -> println("${num} is odd")
26+
}
27+
}
28+
29+
private fun max (a: Int, b: Int, c: Int): Int {
30+
// if block returns something which is quite unique to kotlin
31+
return (if (a > b && a > c) {
32+
a
33+
} else if (b > c) {
34+
b
35+
} else {
36+
c
37+
}
38+
)
39+
}
40+
41+
private fun loops () {
42+
for (i in 1..10) {
43+
print("${i} ")
44+
}
45+
println()
46+
for (i in 10 downTo 1) {
47+
print("${i} ")
48+
}
49+
println()
50+
for (i in 1..10 step 2) {
51+
print("${i} ")
52+
}
53+
println()
54+
for (i in 10 downTo 1 step 2) {
55+
print("${i} ")
56+
}
57+
println()
58+
59+
val animals = listOf("Lion", "Horse", "Elephant", "Camel", "Dog", "Tiger", "Leopard", "Rabbit", "Snake")
60+
61+
for (animal in animals) {
62+
print("${animal} ")
63+
}
64+
println()
65+
for ((i, animal) in animals.withIndex()) {
66+
print("${i+1}: ${animal} ")
67+
}
68+
println()
69+
70+
var i = 0
71+
val animal = "Dog"
72+
while (i < animals.size) {
73+
if (animals[i++].compareTo(animal) == 0){
74+
println("${animal} exists");
75+
break
76+
}
77+
if (i == animals.size) {
78+
println("{animal} does not exist")
79+
}
80+
}
81+
}
82+
83+
fun main () {
84+
ternary_and_case()
85+
println("Max(5, 9, 10) => ${max(5, 9, 10)}")
86+
println("Max(10, 10000, 9052)3 => ${max(10, -10000, 90523)}")
87+
loops()
88+
}

kotlin/essentials/run.bat

Lines changed: 4 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,4 @@
1+
mkdir bin
2+
kotlinc types.kt -include-runtime -d bin\types.jar && java -jar bin\types.jar
3+
kotlinc strings.kt -include-runtime -d bin\strings.jar && java -jar bin\strings.jar
4+
kotlinc control_flow.kt -include-runtime -d bin\control_flow.jar && java -jar bin\control_flow.jar

kotlin/essentials/strings.kt

Lines changed: 27 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,27 @@
1+
package essentials.strings
2+
3+
fun main () {
4+
var str1 = "prashanth"
5+
var str2 = "kotlin"
6+
7+
println("${str1.compareTo(str2)}")
8+
println("${str2.compareTo(str1)}")
9+
println("${str1.compareTo(str1)}")
10+
11+
println("${str1}.get(2) => ${str1.get(2)}")
12+
println("${str1}[2] => ${str1[2]}")
13+
14+
println("${str1}.subSequence(2,5) => ${str1.subSequence(2,5)}")
15+
16+
for (char in str2) {
17+
print("$char ")
18+
}
19+
println()
20+
21+
var raw_string = """
22+
Hello World!
23+
This is raw string from kotlin.
24+
- Prashanth
25+
"""
26+
println(raw_string)
27+
}

kotlin/essentials/types.kt

Lines changed: 58 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,58 @@
1+
package essentials.types
2+
3+
// var: mutable
4+
// val: immutable
5+
6+
private fun numbers_bool () {
7+
var count: Int = 0
8+
9+
val number: Int = 42
10+
val otherNumber = 43
11+
12+
val myLong: Long = 3000000000L
13+
val myByte: Byte = 127
14+
val myShort: Short = 32767
15+
16+
val myDouble: Double = 99.9
17+
val myFloat: Float = 12.6F
18+
val alsoDouble = 101.5
19+
20+
val asInt = alsoDouble.toInt()
21+
val asFloat = myLong.toFloat()
22+
23+
val maxInt = 2_147_483_648
24+
25+
val myBoolean: Boolean = true
26+
27+
println("$count, $number, $otherNumber")
28+
println("$myLong, $myByte, $myShort")
29+
println("$myDouble, $myFloat, $alsoDouble")
30+
println("$asInt, $asFloat, $alsoDouble, $maxInt")
31+
println("$myBoolean ${!myBoolean}")
32+
}
33+
34+
private fun char_strings () {
35+
val myString: String = "prashanth"
36+
val myChar: Char = 'P'
37+
38+
println("$myString, $myChar")
39+
40+
var myStringTemp: String
41+
// using var as we need to assign something to myStringTemp several times
42+
// if we use val then, we cannot assing things to myStringTemp more than once
43+
// Error that we may get iwth val and multiple assignments: "error: val cannot be reassigned"
44+
myStringTemp = myString.plus("_").plus(myChar.toString());
45+
println("$myStringTemp")
46+
myStringTemp = ""
47+
myStringTemp = myString + "_" + myString;
48+
println("$myStringTemp")
49+
myStringTemp = ""
50+
myStringTemp = "${myString}_${myString}";
51+
println("$myStringTemp")
52+
}
53+
54+
fun main () {
55+
println("Hello World!")
56+
numbers_bool();
57+
char_strings();
58+
}

0 commit comments

Comments
 (0)