Unit 1: Kotlin basics (1)

quokka·2021년 10월 12일
0

Android Basics in Kotlin

목록 보기
1/25
post-thumbnail

이번 학기에 GDSC에서 진행하는 안드로이드 스터디를 들어가게 되었다! 안드로이드를 해본 적은 있지만 제대로 공부를 하고 사용했던 게 아니라서 이번 기회에 Kotlin과 안드로이드를 기초부터 꼼꼼히 배워보려고 한다! 😤 (블로그도 하나씩 채워나가기!)

스터디는 Google Developers에서 제공하는 Android Basics in Kotlin 강의에 맞춰 진행된다.

Kotlin 함수

다음과 같은 코드를 살펴보자

fun main() {
    println("Happy Birthday!")
}

fun은 함수를 의미하며, 함수란 특정 작업을 실행하는 프로그램의 섹션을 말한다.

main 은 함수의 이름이다. 모든 Kotlin 프로그램에는 main 함수가 필요하다.

함수 이름 뒤에는 항상 괄호 () 가 온다. 괄호 안에는 함수에서 사용할 정보 즉 인수 args 를 넣을 수 있다.

() 괄호 뒤에는 중괄호 {} 가 온다. 중괄호는 작업을 실행하는 코드를 둘러싸고 있다.

println() 은 텍스트를 출력한다. 텍스트를 실제로 출력하려면 main 함수 내에 있어야 한다.

출력할 텍스트는 큰따옴표 사이에 입력한다. 예: "Hello"

fun createMessage(name: String, location: String, age: Int) {
  println("My name is ${name}. I am from ${location}, and I am ${age} years old.")
}

위 코드처럼 인수를 받아서 ${변수명}으로 출력할 수 있다.

Kotlin 변수

val age = 5

val 은 Kotlin에서 사용하는 특수 단어로, 키워드라고 한다.

val 키워드를 사용해 선언된 변수는 한 번만 설정할 수 있다. 값을 변경할 수 없다.

val로 변수를 선언한 뒤에 age = 10 을 아래에 입력해 실행하면 에러가 난다. 😮

println("You are already ${age}!")

${variable} 형식으로 변수를 출력문에서 사용할 수 있다.

fun main() {
    printBorder()
    println("Happy Birthday!")
    printBorder()
}

fun printBorder() {
    println("=======================")
}

리팩토링

반복되는 출력문을 printBorder() 라는 함수로 만들어 함수를 호출한다. 코드의 결과는 그대로지만 더 효율적으로 또는 더 쉽게 작업할 수 있도록 코드를 변경하는 것을 리팩토링이라고 한다.

함수의 이름은 주로 소문자와 동사로 시작하고 두 번째 단어부터 첫 글자를 대문자로 쓴다. 이러한 스타일을 카멜 표기법 이라고 한다.

fun printBorder() {
    repeat(23) {
        print("=")
    }
}

repeat() 문을 이용할 수 있다. repeat는 내부적으로 for문을 사용하는 inline 함수로 인덱스가 필요없는 반복문을 만들 때 유용하다.

fun printBorder(border: String, timesToRepeat: Int) {
    repeat(timesToRepeat) {
        print(border)
    }
    println()
}

fun main() {
    val border = "╰(*°▽°*)╯"
    val timesToRepeat = 4
    printBorder(border, timesToRepeat)
    println("	   Happy Birthday!")
    printBorder(border, timesToRepeat)
}

원하는 기호를 원하는 횟수만큼 출력하기 위해 함수를 위와 같이 수정할 수 있다. 인수의 이름은 border, 인수 뒤에 : 이 오고, 그 다음에는 인수의 타입을 설명하는 String이 온다.

❗ 주의 Int String 모두 대문자다. 다른 언어랑 헷갈리지 말자.

케이크 만들기 실습

fun printCakeCandles(age: Int){
    print(" ")
    repeat(age){
        print(",")
    }
    print("\n ")
    repeat(age){
        print("|")
    }
    println()
}
fun printCakeTop(age: Int){
    repeat(age+2){
        print("=")
    }
    println()
}
fun printCakeBottom(age: Int, layers:Int){
    repeat(layers){
        repeat(age+2){
            print("@")
        }
        println()
    }
}
fun main() {
    val age = 24
    val layers = 5
    printCakeCandles(age)
    printCakeTop(age)
    printCakeBottom(age, layers)
}

🔗 웹에서 Kotlin 프로그램 작성을 연습할 수 있는 Kotlin Playground

🔗 Kotlin에서 사용되는 Android 기초 용어

🔗 Kotlin 스타일 가이드

0개의 댓글