Android Developers codelab -Kotlin - 1

한로·2025년 2월 17일

Android-Developers

목록 보기
1/4

함수

정의

  • 함수에는 이름이 있어야 나중에 호출할 수 있습니다.
  • 함수에는 입력 즉 함수 호출 시 제공해야 하는 정보도 필요할 수 있습니다.
  • 함수에는 작업을 실행하는 명령이 포함된 본문도 있습니다.

함수 사용

fun main() {
    println("Hello, world!!!")
}
  1. Kotlin에서 함수를 정의하려고 한다는 것을 나타내려면 fun 이라는 특수 단어를 사용하면 됩니다.
  2. 그런 다음 함수 이름을 정의합니다. 현재 코드에서는 main입니다
  3. 함수에 입력이 없으므로 괄호는 비어 있습니다.
  4. 함수 본문에는 출력을 도와주는 println("Hello, world!") 가 있습니다.

작명 규칙 (name)

inputs

  • inputs 부분은 함수가 목적을 실행하는 데 필요한 데이터입니다.
    함수 호출 시 특정 입력이 전달되도록 요구할 수 있습니다.
    함수에 입력이 필요하지 않으면 괄호는 () 비어있는 상태로 두면 됩니다.

addOne

  • 주어진 숫자에 1을 더하는 함수

printFullName

  • 함수에서 이름과 성에 관한 입력 두 가지를 받고, 함수 본문에서는 출력에 이름과 성을 출력하여 전체 이름을 표시하는 함수

함수의 반환 값

함수를 정의할 때는 함수가 반환하도록 하려는 값의 데이터 유형을 지정할 수 있습니다.
반환 유형은 괄호 뒤에 콜론(:) 을 입력하고 반환하려는 유형 (Int, String)등을 입력하여 지정합니다.

Unit유형

반환 유형을 지정하지 않은 경우 반환 유형은 기본적으로 Unit 이 됩니다.
Unit은 함수가 값을 반환하지 않음을 의미합니다.

반환값을 설정했다면 값을 반환해줄 return 값 이 필요합니다.

매개변수 사용과 함수의 return

  • 함수 선언
fun birthdayGreeting(name: String): String {
    val nameGreeting = "Happy Birthday, $name!"
    val ageGreeting = "You are now 5 years old!"
    return "$nameGreeting\n$ageGreeting"
}
  • 사용
println(birthdayGreeting("Rover"))
println(birthdayGreeting("Rex"))

매개변수와 인수는 종종 같은 의미로 사용되곤 하지만 서로 다른 것을 가리킵니다. 함수를 정의할 때는 함수 호출 시 전달할 매개변수를 정의합니다.
함수를 호출할 때는 매개변수를 위한 인수를 전달합니다.
매개변수는 함수가 액세스할 수 있는 변수이고(예: name 변수), 인수는 사용자가 실제로 전달하는 값입니다(예: "Rover" 문자열).

여러 매개변수를 갖는 함수

fun birthdayGreeting(name: String, age: Int): String {
    val nameGreeting = "Happy Birthday, $name!"
    val ageGreeting = "You are now $age years old!"
    return "$nameGreeting\n$ageGreeting"
}


Kotlin 스타일 가이드

  • 스타일 가이드를 따르는 목적은 코드를 더 읽기 쉽고 다른 Android 개발자가 코드를 작성하는 방식과 더 일관되도록 하는 것입니다.
    이러한 일관성으로 대규모 프로젝트에서 공동작업할 때 프로젝트의 모든 파일에서 동일한 코드 스타일을 적용할 수 있습니다.

스타일가이드 권장사항

  • 함수 이름은 카멜 표기법을 사용해야 하며 동사 또는 동사구여야 합니다.

  • 각 문은 한 줄에 하나씩 입력해야 합니다.
  • 여는 중괄호는 함수가 시작되는 줄의 끝에 표시되어야 합니다.
  • 여는 중괄호 앞에는 공백이 있어야합니다.

  • 함수 본문은 4개의 공백으로 들여쓰기가되어야 합니다.

  • 닫는 중괄호는 함수 본문의 마지막 코드 줄 뒤 자체 줄에 있습니다.
  • 닫는 중괄호는 함수 시작 부분에 있는 fun 키워드와 정렬되어야 합니다.

전체 가이드

https://developer.android.com/kotlin/style-guide?hl=ko


코드 오류 수정

fun main() {
    println("Today is sunny!)
}
  1. 다음 코드 스니펫을 복사하여 Kotlin 플레이그라운드에 넣고 프로그램을 실행합니다.

플레이그라운드의 오류 메시지

오류 메시지 'Expecting' 이라는 단어로
시작되는데 Kotlin 컴파일러가 무언가를 '예상' 하지만 코드에서 찾을 수 없기 때문입니다.
이 경우 컴파일러는 프로그램의 두 번째 줄에 있는 코드의 닫는 따옴표와 닫는 괄호를 예상합니다.

fun main() {
    println("Today is sunny!")
}

변수

변수 및 데이터 유형

  • 박스에 변수를 저장하는이유

_{ name }님, 안녕하세요.

오늘 { location }에서 만나서 반가웠습니다. { date }에 뵙겠습니다._

각 빈 공간에 들어갈 정보 유형을 지정할 수도 있습니다.
이렇게 하면 원하는 편지 정보를 쉽게 수정할 수 있습니다.

데이터 유형

https://kotlinlang.org/docs/basic-types.html#numbers

정의 및 사용

변수를 사용하려면 먼저 코드에서 변수를 정의해야 합니다.

변수를 선언하다. 정의하다는 의미가 동일하다고 생각하면 됩니다.

변수를 정의한 후에는 프로그램에서 이 변수를 사용할 수 있습니다.

예를 들어 사용자의 받은편지함에 있는 읽지 않은 메일 수의 변수를 정의합니다.
이 변수의 이름은 count 이고, 값은 2를 가집니다.

표현식은 값이 있는 코드의 작은 단위입니다.
표현식은 변수, 함수 호출 등으로 구성될 수 있습니다.

아래 예에서 표현식은 count 변수 하나로 구성됩니다.
표현식의 값은 2입니다.

변수 선언

fun main() {
    val count : Int = 2
    println(count) // <- 변수 사용
}


println() 에서 따옴표가 없는 count 는 리터럴이 아닌 변수이름입니다.

유형 추론

유형 추론은 Kotlin 컴파일러가 유형을 명시적으로 코드에 작성하지 않고도 변수가 어떤 데이터 유형이어야 하는지 추론하거나 결정할 수 있는 경우입니다.

즉, 변수의 초기값을 제공하면 변수 선언에서 데이터 유형을 생략할 수 있습니다.

참고: 변수를 선언할 때 초깃값을 제공하지 않는 경우 유형을 지정해야 합니다.
다음 코드 줄에서는 초깃값이 제공되지 않으므로 데이터 유형을 지정해야 합니다.

val count: Int

다음 코드 줄에서는 할당된 값이 제공되므로 데이터 유형을 생략해도 됩니다.
val count = 2

변수 업데이트

  • 오류코드
fun main() {
    val cartTotal = 0
    cartTotal = 20
    println("Total: $cartTotal")
}

  • 프로그램을 실행하면 컴파일 오류가 발생합니다.
  • 이 오류에는 val을 다시 할당할 수 없다고 표시됩니다.
    변수 값을 업데이트해야 한다면 val 대신 var 키워드로 변수를 선언합니다.
fun main() {
    var cartTotal = 0
    cartTotal = 20
    println("Total: $cartTotal")
}
  • 할당 연산자를 사용하여 기존 변수에 새 값 20을 할당하는 코드입니다.

문제 풀이

https://developer.android.com/codelabs/basic-android-kotlin-compose-intro-kotlin-practice-problems?hl=ko&continue=https%3A%2F%2Fdeveloper.android.com%2Fcourses%2Fpathways%2Fandroid-basics-compose-unit-1-pathway-1%3Fhl%3Dko%23codelab-https%3A%2F%2Fdeveloper.android.com%2Fcodelabs%2Fbasic-android-kotlin-compose-intro-kotlin-practice-problems#0

퀴즈

https://developer.android.com/courses/quizzes/android-basics-compose-unit-1-pathway-1/android-basics-compose-unit-1-pathway-1?hl=ko&continue=https%3A%2F%2Fdeveloper.android.com%2Fcourses%2Fpathways%2Fandroid-basics-compose-unit-1-pathway-1%3Fhl%3Dko%23quiz-%2Fcourses%2Fquizzes%2Fandroid-basics-compose-unit-1-pathway-1%2Fandroid-basics-compose-unit-1-pathway-1

profile
"Hello World"

0개의 댓글