sooleeandtomas

코틀린 문법 본문

코틀린/kotlin

코틀린 문법

sooleeandtomas 2021. 9. 7. 23:15

Google의 공식 언어인 kotlin은 이미 많은 앱들이 kotlin을 이용해서 안드로이드 앱을 개발하고 있습니다.

netflix, airbnb, twitter, slack, wechat, evernote ... 등이 있습니다.

 

코틀린 문법은 아래의 kotlin playground에서 이용해 볼 수 있습니다.

https://play.kotlinlang.org/

 

#변수

fun main() {
    println("코틀린은 정말 좋군요!!")
    var temp = 20
    temp = 5
    
    var temp1 = 50 // 숫자만 넣을 수 있다.
    var temp2 = "BOB" // 글자만 넣을 수 있다. 
    temp1 = '50' // error
}

 

 

fun main() {
	var a = 1
    var b = 2
    println(a+b)
    println(a-b)
    println(a*b)
    println(a/b) // 0 실수에 대한 정보가 없어서 소숫점을 버리게된다.
    
    var first = "bob"
    var last = "lee"
    println(first + last)//boblee
    println(first + ' ' + last)//bob lee
    println(first+a)//bob1
}

 

#자료구조 배열

fun main() {
	var numList = listOf(1,2,3)
    println(numList[0]) // 1
    
    var stringList = listOf('a', 'b', 'c')
    println(stringList) //[a,b,c]
    println(stringList[1])
    
    println(stringList.size)//3
}

 

#자료구조 Map

fun main() {
    var nameMap = mapOf("firstName" to "Rtan", "lastName" to "Lee")
    println(nameMap) // {firstName=Soo, lastNam =Lee}
    println(nameMap["firstName"]) //Soo
    
    println(nameMap.size)//2
    println(nameMap.keys)//[firstName, lastName]
    println(nameMap.values)//[Soo, Lee]
}

 

#수정 가능한 자료구조 Array mutableListOf


fun main() {
    var list = mutableListOf("a", "b", "c")
    println(list) //[a,b,c]
    
    list.add("d")
    println(list) //[a,b,c,d]
    
    list[0] = "A"
    println(list) // [A,b,c,d]
    
    list.set(1, "B")
    println(list) //[A,B,c,d]
    
    list.remove("d")
    println(list) //[A,B,c]
    
    list.removeAt(1)
    println(list) //[A,c]
    
}

 

#수정 가능한 자료구조 Map mutableMapOf

fun main() {
   var map = mutableMapOf("first" to "Soo", "last" to "Lee")
   println(map) //{fist=Soo, last=Lee}
   
   map.put("age", "19")
   println(map) //{fist=Soo, last=Lee, age=19}
   
   map.put("first", "Kotlin")
   println(map)//{first=Kotlin, last=Lee, age=19}
   
   
   map["first"] = "Soo"
   println(map)//{first=Soo, last=Lee, age=19}
   
   map.remove("age")
   println(map) //{frst=Soo, last=Lee}
    
}

 

#리스트와 맵의 조합

fun main() {
   var students = mutableListOf(
   	mutableMapOf("name" to "Hell"),
    mutableMapOf("name" to "Kotlin")
   )
   println(students) //[{name=Hell}, {name=Kotlin}]
   students.add(mutableMapOf("name" to "Soo"))
   
   println(students) //[{name=Hell}, {name=Kotlin}, {name=Soo}]
   println(students[1])//{name=Kotlin}
   println(students[1]["name"]) //Kotlin
}

 

#타입 지정

fun main() {
    var one:Int = 1
    var pi:Double = 3.14 //실수
    
    var name:String = "실수"
    
    var isEasy:Boolean = true
    var isHard:Boolean = false
}

 

#void 함수

fun main() {
	fun printSum(num1: Int, num2: Int){
        println(num1 + num2)
    }
    
    printSum(3, 5) // 8
    printSum(4, -1) // 3
}

 

#리턴 함수

fun main() {
    fun sum(num1: Int, num2: Int): Int{
        return num1 + num2
    }
    
    var result = sum(3, 5)
    println(result) // 8
}

 

#조건문

fun main() {
	fun compareNinety(num: Int){
        if(num > 90){
            println("90보다 커요")
        }else{
            println("90과 같거나 작아요")
        }
    }
    compareNinety(100)//90보다 커요
    compareNinety(80)//90과 같거나 작아요
    compareNinety(79)//90과 같거나 작아요
}
fun main() {
	fun isSoo(name: String) : Boolean{
        if(name == "soo"){
            return true
        }else{
            return false
        }
    }
    
    println(isSoo("soo")) //true
    println(isSoo("hye")) //false
}

 

#And / Or / Not

fun main() {
    var num = 30
	if(!(num >= 20 && num < 30)){
        println("20대가 아닙니다!")
    }else{
        println("20대입니다")
    }
}

 

#반복문

fun main() {
    for(i in 0..5){
        println(i)
    }
}

//0
//1
//2
//3
//4
//5
fun main() {
    var languages = listOf("Korean", "English", "Kotlin", "Python")
    for(lang in languages){
        println(lang)
    }
}

//Korean
//English
//Kotlin
//Python

 

# 맵의 반복문

fun main() {
    var users = listOf(
        mapOf("FirstName" to "안드", "LastName" to "이"),
        mapOf("FirstName" to "로이", "LastName" to "김"),
        mapOf("FirstName" to "개발", "LastName" to "최"),
)
    
    for(user in users){
        println(user)
    }
}
//{FirstName=안드, LastName=이}
//{FirstName=로이, LastName=김}
//{FirstName=개발, LastName=최}

 

# 맵의 반복문 + 조건문

fun main() {
    var users = listOf(
        mapOf("FirstName" to "안드", "LastName" to "이"),
        mapOf("FirstName" to "로이", "LastName" to "김"),
        mapOf("FirstName" to "개발", "LastName" to "최"),
)
    
    for(user in users){
        if(user["LastName"] == "김"){
         	println(user)   
        }
    }
}
//{FirstName=로이, LastName=김}

 

#타입지정

fun main() {
	fun printSum(a:Int, b:Int){
        println(a+b)
    }
    printSum(3, 5) //8
    printSum(3, -1) //2
    
    fun sum(a: Int, b: Int): Int {
		return a + b;
    }
    
    var result = sum(6,1)
    println(result) //7
}

 

#함수생성

fun main() {
    
    fun countScore(bottom: Int): Int{
    	var scores = listOf(81, 79, 80, 30, 50, 100, 99, 56, 0, 12)
    
        var count = 0
        for(score in scores){
            if(score >= bottom){
                count += 1
            }
        }
        return count
    }
    
	println(countScore(80))
	println(countScore(70))
	println(countScore(50))
}
Comments