Skip to content

Commit f4b6a49

Browse files
authored
Add files via upload
1 parent 37391f2 commit f4b6a49

16 files changed

+425
-0
lines changed

Classes.kt

Lines changed: 47 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,47 @@
1+
/**
2+
* Created by Anish Arya on 27-Jun-17.
3+
*/
4+
package Mark1
5+
6+
fun main(args: Array<String>){
7+
val bowser = Animal("Bowser",20.0,13.5)
8+
bowser.getInfo()
9+
10+
val BlackBeard = Dog("BlackBeard",22.0,14.5,"Sherlock")
11+
BlackBeard.getInfo()
12+
13+
val tweety = Bird("Tweety",true)
14+
tweety.fly(10.0)
15+
}
16+
//Class
17+
open class Animal(val name: String, var height: Double, var weight: Double) {
18+
init {
19+
val regex = Regex(".*\\d+.*")
20+
require(!name.matches(regex)) { "Animal name can't contain numbers" }
21+
require(height > 0) { "Height must be greater than 0" }
22+
require(weight > 0) { "Weight must be greater than 0" }
23+
}
24+
25+
open fun getInfo(): Unit {
26+
println("$name is $height tall and weighs $weight")
27+
}
28+
}
29+
//Inheritance
30+
class Dog(name: String,height: Double,weight: Double, var owner: String): Animal(name,height,weight){
31+
override fun getInfo(): Unit {
32+
println("$name is $height tall and weighs $weight and owned by $owner")
33+
}
34+
}
35+
//Interface
36+
interface Flyable{
37+
var flies:Boolean
38+
fun fly(distMiles:Double): Unit
39+
}
40+
41+
class Bird constructor(val name: String, override var flies: Boolean = true) : Flyable{
42+
override fun fly(distMiles: Double): Unit{
43+
if(flies){
44+
println("$name flies $distMiles")
45+
}
46+
}
47+
}

CollectionOperators.kt

Lines changed: 25 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,25 @@
1+
/**
2+
* Created by Anish Arya on 27-Jun-17.
3+
*/
4+
package Mark1
5+
6+
fun main(args: Array<String>){
7+
val numList2 = 1..20
8+
9+
val listSum = numList2.reduce{x ,y -> x+y}
10+
println("Reduce Sum :$listSum")
11+
12+
val listSum2 = numList2.fold(5){x,y -> x+y} //counting starts off from 5
13+
println("Fold Sum : $listSum2")
14+
15+
println("Evens: ${numList2.any{it % 2 == 0}}")
16+
println("Evens: ${numList2.all{it % 2 == 0}}")
17+
18+
val big3 = numList2.filter { it>3 }
19+
big3.forEach{n -> println(">3 : $n")}
20+
21+
// map allows us to perform an action on every single item and then returns a new list
22+
val times7 = numList2.map{it*7}
23+
times7.forEach { n -> println("*7 : $n") }
24+
25+
}

ExceptionHandling.kt

Lines changed: 17 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,17 @@
1+
/**
2+
* Created by Anish Arya on 27-Jun-17.
3+
*/
4+
package Mark1
5+
6+
fun main(args: Array<String>){
7+
val divisor = 0
8+
try {
9+
if (divisor == 0) {
10+
throw IllegalArgumentException("Can;t Divide By Zero")
11+
} else {
12+
println("5/$divisor = ${5 / divisor}")
13+
}
14+
} catch(e:IllegalArgumentException){
15+
println("${e.message}")
16+
}
17+
}

Functions1.kt

Lines changed: 25 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,25 @@
1+
/**
2+
* Created by Anish Arya on 27-Jun-17.
3+
*/
4+
package Mark1
5+
6+
fun main(args: Array<String>){
7+
fun add(num1: Int, num2: Int): Int = num1 + num2 // One line function
8+
println("5 + 4 : ${add(4,5)}")
9+
10+
fun subtract(num1: Int = 2, num2: Int = 1) = num1 - num2 // one line function doesn't need a return value
11+
println(subtract())
12+
println("5 - 4 : ${subtract(5,4)}")
13+
14+
println("4 - 5 : ${subtract(num2 = 5, num1 = 4)}") // parameterized function
15+
16+
fun sayHello(name :String) : Unit = println("Hello $name")
17+
sayHello("Anish") //Function not having any return value uses "Unit" instead "void"
18+
19+
val(two,three) = nextTwo(1)
20+
println("1 $two $three")
21+
}
22+
fun nextTwo(num: Int) : Pair<Int,Int>
23+
{
24+
return Pair(num+1,num+2)
25+
}

Functions2.kt

Lines changed: 33 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,33 @@
1+
/**
2+
* Created by Anish Arya on 27-Jun-17.
3+
*/
4+
package Mark1
5+
6+
/* NOTE :
7+
tailrec allows some algorithms that would normally be written using loops instead written using a recursive function,
8+
BUT WITHOUT THE RISK OF OVERFLOW i.e, compiler optimises out the recursion, leaving behind a fast and efficient loop
9+
based version instead.
10+
*/
11+
12+
fun main(args: Array<String>){
13+
println("Sum = ${getSum(1,2,3,4,5)}")
14+
15+
val multiply = {num1: Int,num2: Int -> num1 * num2} //function literals
16+
println("5 * 3 = ${multiply(5,3)}")
17+
18+
println("5! = ${fact(5)}")
19+
}
20+
//If the value argument in Java has an array type, it becomes a vararg parameter in Kotlin
21+
fun getSum(vararg nums:Int) : Int {
22+
var sum = 0
23+
nums.forEach { n -> sum += n }
24+
return sum
25+
}
26+
// factorial function
27+
fun fact(x:Int) : Int{
28+
tailrec fun factTail(y:Int, z:Int) : Int{
29+
if(y==0) return z
30+
else return factTail(y-1,z*y)
31+
}
32+
return factTail(x,1)
33+
}

HigherOrderFunctions.kt

Lines changed: 32 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,32 @@
1+
/**
2+
* Created by Anish Arya on 27-Jun-17.
3+
*/
4+
package Mark1
5+
6+
fun main(args: Array<String>){
7+
// we want to use a filter which is going to be a collection operator, to find even values in a range
8+
val numList = 1..20
9+
val evenList = numList.filter{it % 2 == 0}
10+
/*If a function Literal has only one parameter, we might remove it's declaration,
11+
alongwith -> and it's name will bi "it"
12+
*/
13+
evenList.forEach{n -> println(n)}
14+
15+
//Call a function that would dynamically return a created function
16+
val mult3 = makeMathFunc(3)
17+
println("5 * 3 = ${mult3(5)}")
18+
19+
//Function which is going to recieve a list and a function to use upon that list
20+
val multiply2 = {num1:Int -> num1*2}
21+
val numList2 = arrayOf(1,2,3,4,5)
22+
23+
mathOnList(numList2,multiply2)
24+
}
25+
26+
fun makeMathFunc(num1:Int) : (Int) -> Int = {num2 ->num1*num2}
27+
28+
fun mathOnList(numList: Array<Int>, myFunc:(num:Int) -> Int){
29+
for(num in numList){
30+
println("MathOnList ${myFunc(num)}")
31+
}
32+
}

Lists.kt

Lines changed: 27 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,27 @@
1+
/**
2+
* Created by Anish Arya on 27-Jun-17.
3+
*/
4+
package Mark1
5+
6+
fun main(args: Array<String>){
7+
8+
var list1:MutableList<Int> = mutableListOf(1,2,3,4,5) //MUTABLE list
9+
val list2:List<Int> //IMMUTABLE list
10+
11+
list1.add(6) //adding an item in the list
12+
13+
println("1st Element: ${list1.first()}") //printing First element
14+
println("2nd Element: ${list1[1]}") //printing second element
15+
println("Last Element: ${list1.last()}") //printing last Element
16+
17+
var list3 = list1.subList(0,3) //creating sublist
18+
println("Sublist of list1: $list3")
19+
20+
println("Length : ${list1.size}") //printing the length of the list
21+
22+
//list3.clear() //clearing the list
23+
list1.remove(1) // removing an item
24+
list1.removeAt(1) // removing at certain position
25+
list1.forEach { n -> println("Mutable List: $n") }
26+
27+
}

Looping.kt

Lines changed: 35 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,35 @@
1+
/**
2+
* Created by Anish Arya on 26-Jun-17.
3+
*/
4+
package Mark1
5+
6+
import java.util.Random
7+
8+
fun main(args: Array<String>)
9+
{
10+
for(x in 1..10)
11+
{
12+
println("Loop : $x")
13+
}
14+
15+
val rand = Random()
16+
val magicNum = rand.nextInt(50) + 1
17+
var guess = 0
18+
while (magicNum!=guess)
19+
guess+=1
20+
println("Magic Number was $guess")
21+
22+
for (x in 1..20)
23+
{
24+
if(x%2==0)
25+
continue
26+
println("Odd : $x")
27+
if(x==15) break
28+
}
29+
30+
var arr3: Array<Int> = arrayOf(3,6,9)
31+
32+
for(i in arr3.indices) println("Mult: ${arr3[i]}")
33+
for((index,value) in arr3.withIndex())
34+
println("Index: $index , Values: $value")
35+
}

Maps.kt

Lines changed: 22 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,22 @@
1+
/**
2+
* Created by Anish Arya on 27-Jun-17.
3+
*/
4+
package Mark1
5+
6+
fun main(args: Array<String>){
7+
val map = mutableMapOf<Int,Any?>() //mutable list
8+
val map2 = mutableMapOf(1 to "Anish",2 to 42)
9+
10+
map[1]="Vicky Arya"
11+
map[2]=22
12+
13+
println("Map: $map")
14+
println("Map2: $map2")
15+
println("Map Size: ${map.size}")
16+
17+
map.put(3,"India")
18+
map.remove(2)
19+
for((x,y) in map){
20+
println("Key: $x Value: $y")
21+
}
22+
}

NullSafety.kt

Lines changed: 24 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,24 @@
1+
/**
2+
* Created by Anish Arya on 28-Jun-17.
3+
*/
4+
package Mark1
5+
6+
fun main(args: Array<String>){
7+
8+
//var nullVal: String = null
9+
//by default we cannot assign null value
10+
//however we can still allow a null value using '?'
11+
var nullVal: String? = null
12+
println(nullVal)
13+
14+
//function may also return null
15+
fun returnNull(): String?{
16+
return null
17+
}
18+
19+
var nullVal3 = returnNull()
20+
21+
//var nullVal3 = nullVal2!!length
22+
var nullVal4:String = returnNull()?: "No Name" //?: ->Elvis Operator
23+
println(nullVal4)
24+
}

arrays.kt

Lines changed: 25 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,25 @@
1+
/**
2+
* Created by Anish Arya on 25-Jun-17.
3+
*/
4+
package Mark1
5+
6+
fun main(args: Array<String>)
7+
{
8+
var myarray = arrayOf("Vicky","Arya","Anish")
9+
println(myarray[2])
10+
myarray[2]="Anish Arya"
11+
println("Array Length : ${myarray.size}")
12+
println("Vicky Is In Array : ${myarray.contains("Vicky")}")
13+
println(myarray)
14+
var partofarray = myarray.copyOfRange(0,1)
15+
println(partofarray)
16+
println("First Element: ${myarray.first()}")
17+
println("Last Element: ${myarray.last()}")
18+
println("Vicky's Index : ${myarray.indexOf("Vicky")}")
19+
20+
val sqArray = Array(5,{ x -> x * x})
21+
println(sqArray[2])
22+
23+
var arr2: Array<Int> = arrayOf(1,2,3,4,5,6)
24+
println(arr2)
25+
}

conditionals.kt

Lines changed: 29 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,29 @@
1+
/**
2+
* Created by Anish Arya on 26-Jun-17.
3+
*/
4+
package Mark1
5+
6+
fun main(args: Array<String>){
7+
val age = 8
8+
if(age<5)
9+
{ println("Go To Preschool") }
10+
else if ( age == 5 )
11+
{ println("Go to Kindergarden") }
12+
else if ((age>5) && (age<17)) {
13+
val grade = age - 5
14+
println("Go to grade $grade")
15+
}
16+
else
17+
{ println("Go to college") }
18+
val age_new = 7
19+
when(age_new){
20+
0,1,2,3,4 -> println("Go to preschool")
21+
5 -> println("Go to kindergarden")
22+
23+
in 6..17 ->{
24+
val grade = age_new-5
25+
println("Go to grade $grade")
26+
}
27+
else -> println("Go to college")
28+
}
29+
}

0 commit comments

Comments
 (0)