밍경송의 E.B
Android <2> Kotlin Functions - (Almost) Everything has a value! 본문
Android <2> Kotlin Functions - (Almost) Everything has a value!
m_gyxxmi 2023. 10. 7. 02:08안녕하십가..! 이번 시간에는 2강에서 다루기 시작한 코틀린의 '함수'에 대해 다뤄보는 시간을 간단하게 가져보겠읍니다 !
내일 엠티라서 부랴부랴 과제들을 청산하고 있는데 시간이 늦어서 너무.. 자고싶엉ㅛ..이제 엠티 못가겄다..
자 먼저 코틀린의 아주 기본적인 함수 예제를 들여다봅시다.
fun main(args: Array<String>) {
println("Hello, I'm smk!")
}
: fun 이라는 키워드 뒤에 함수의 이름을 적어서 함수를 생성할 수 있고, 함수 이름 옆의 ( )에 함수의 인자를 넣어줌으로써 함수를 완성할 수 있습니다.
이때 인자에 대한 부분은 필수적인 것은 아닙니다! 뒤에서 자세한 설명을 하도록 하겠숩니다.
+ { } 안에는 함수의 내용이 들어가는 것은 역시,, 다른 언어와 동일합니다.
그렇다면 Kotlin의 함수를 배우면서 가장 주목해야 할 것은 무엇일까요?
Function - (Almost) everything has a value !
: 코틀린의 함수 중 거의 모든 것는 값(return value)이 존재한다!
ㄴ여기서 값이 존재한다는 의미는 Statement(문)이 아니라 Expression(식)이라는 의미이기도 합니다.
여러분은 Statement(문)와 Expression(식)의 차이가 무엇인지 아시나요? 저는 몰랐습니다.... 간단히 정리해보겠숩다.
▶Statement(문)은 value(값)을 변수의 상태를 변경해주는 등의 부수적인 효과를 주는, 결괏값이 존재하지 않는 코드를 의미합니다. 대표적인 Statement에는 for, (do) while 루프들이 존재하고, 이들은 식으로 나타낼 수 없답니다.
우리가 흔히 C 등 다른 언어를 배울 때, if문, while문 .. 이런 식의 이름으로 개념을 배웠을텐데요. 그걸 생각하면 된답니다.
: 여기서 포인트!
위의 문장에서 왜 (Almost)라는 표현을 썼는지 이제 캐치하셨나요? 바로 for, while 루프가 그 반례이기 때문입니다. 강의에 나와있는 문장을 인용해와봤으니 읽어보시죠!
"Loops are exceptions to "everything has a value." There's no sensible value for for loops or while loops, so they do not have values. If you try to assign a loop's value to something, the compiler gives an error."
--
▶ Expression(식)은 결괏값이 존재하는 코드로, 이 결괏값을 변수에 대입할 수도, 다른 식의 일부로 사용할 수도 있습니다. Kotlin에서는 위에서 다룬 Loop들을 제외한 모든 함수가 Expression이라고 할 수 있습니다.
강의에서 예제를 하나 가져왔숩니다.
val temperature = 10
val isHot = if (temperature > 50) true else false
println(isHot)
isHot이라는 변수에, if식에서 얻은 결과값을 대입하고 이를 프린트하고 있네요.
이제는 위 예제가 if문이 아니라 if식이라는 거 아시겠조,,!
: 여기서 궁금증 1가지.
어랏 위에 예제의 main() 함수는 반환되는 값이 없는데 이건 뭘까???????????????
fun main(args: Array<String>) {
println("Hello, I'm smk!")
}
: 예제의 main() 함수의 경우 return문 자체가 안보이는데요. 제가 틀린 게 아닙니다. 이거 돌리면 print문에 쓴 거 고대로 나와요
이렇게 return문이 보이지 않는 경우, 사실 함수는 Unit(kotlin.Unit)을 리턴하고 있지만, Unit의 경우는 생략이 가능하기 때문에 명시적으로 드러나지 않습니다!
>>그러니까 중요한 것은 return문이 안 보인다고 return값이 없는 것이 아니라, return 값이 Unit이라 생략된 것이라는 점!
이해가시죠?! 네에!
&강의
https://developer.android.com/courses/pathways/android-development-with-kotlin-2?hl=ko
오늘은 시간관계상 배운 내용을 모두 다루지 못했숩니다.. 최대하 빨리 이어서 내용 보강을 하도록 하겠숩니다 하트뼝뼝 해피 한글날~~
'GDSC > Android' 카테고리의 다른 글
Android <5> Layouts & Tip(팁) 계산기🔢 (0) | 2023.11.18 |
---|---|
Android <4> Build your first Android app: [Dice Roller🎲] (1) | 2023.11.17 |
Android <3> Classes and objects (1) | 2023.11.03 |
Android <2> More About Kotlin Functions (1) | 2023.10.14 |
Android <1> Kotlin Basic - Benefits of Kotlin (0) | 2023.09.18 |