๐ŸŒCoding/๐ŸŒŸKotlin 5

04. ํ”„๋กœ๊ทธ๋žจ ํ๋ฆ„์˜ ์ œ์–ด

๐Ÿ˜ถ if๋ฌธ๊ณผ if~else๋ฌธ if (์กฐ๊ฑด์‹) { ์ˆ˜ํ–‰ํ•  ๋ฌธ์žฅ //์กฐ๊ฑด์‹์ด ์ฐธ์ธ ๊ฒฝ์šฐ์—๋งŒ ์ˆ˜ํ–‰ } else { ์ˆ˜ํ–‰ํ•  ๋ฌธ์žฅ //์กฐ๊ฑด์‹์ด ๊ฑฐ์ง“์ธ ๊ฒฝ์šฐ์— ์ˆ˜ํ–‰ } - ์ˆ˜ํ–‰ํ•  ๋ฌธ์žฅ์ด ํ•œ ์ค„์ด๋ฉด ์ค‘๊ด„ํ˜ธ๋ฅผ ์ƒ๋žต ๊ฐ€๋Šฅ - ๋ฒ”์œ„(range) ์—ฐ์‚ฐ์ž: ๋ณ€์ˆ˜๋ช… in ์‹œ์ž‘ ๊ฐ’.. ๋งˆ์ง€๋ง‰ ๊ฐ’ * ์ฝ”ํ‹€๋ฆฐ io์˜ ํ‘œ์ค€ ํ•จ์ˆ˜์˜ readline()์€ ์ฝ˜์†”๋กœ๋ถ€ํ„ฐ ํ•œ ์ค„ ์ž…๋ ฅ์„ ๋ฐ›์•„๋“ค์ž„ ๐Ÿ˜ถ when๋ฌธ - ๋‹ค๋ฅธ ์–ธ์–ด์—์„œ ํ”ํžˆ ์‚ฌ์šฉ๋˜๋˜ switch~case๋ฅผ ๋Œ€์ฒดํ•˜๋Š” ์ฝ”ํ‹€๋ฆฐ์—์„œ๋งŒ ์ œ๊ณต๋˜๋Š” ๋ฌธ๋ฒ• when (์ธ์ž) { ์ธ์ž์— ์ผ์น˜ํ•˜๋Š” ๊ฐ’ ํ˜น์€ ํ‘œํ˜„์‹ -> ์ˆ˜ํ–‰ํ•  ๋ฌธ์žฅ ์ธ์ž์— ์ผ์น˜ํ•˜๋Š” ๋ฒ”์œ„ -> ์ˆ˜ํ–‰ํ•  ๋ฌธ์žฅ ... else -> ๋ฌธ์žฅ } - when์— ์ธ์ž๊ฐ€ ์ฃผ์–ด์ง€์ง€ ์•Š์œผ๋ฉด else if์ฒ˜๋Ÿผ ๊ฐ๊ฐ์˜ ์กฐ๊ฑด ์‹คํ–‰ ๊ฐ€๋Šฅ - ํŠน์ • ์ธ์ž์— ์ œํ•œํ•˜์ง€ ์•Š๊ณ ..

03. ํ•จ์ˆ˜

๐Ÿค”ํ•จ์ˆ˜ fun ํ•จ์ˆ˜์ด๋ฆ„ ([๋ณ€์ˆ˜ ์ด๋ฆ„: ์ž๋ฃŒํ˜•]): [๋ฐ˜ํ™˜๊ฐ’์˜ ์ž๋ฃŒํ˜•] { ํ‘œํ˜„์‹ [return ๋ฐ˜ํ™˜๊ฐ’] } - ๊ฐ€๋ณ€ ์ธ์ž: ์ธ์ž์˜ ๊ฐœ์ˆ˜๊ฐ€ ๋ณ€ํ•œ๋‹ค fun ํ•จ์ˆ˜์ด๋ฆ„ (vararg [๋ณ€์ˆ˜ ์ด๋ฆ„: ์ž๋ฃŒํ˜•]): [๋ฐ˜ํ™˜๊ฐ’์˜ ์ž๋ฃŒํ˜•] { ํ‘œํ˜„์‹ [return ๋ฐ˜ํ™˜๊ฐ’] } ๐Ÿค”์ฝ”ํ‹€๋ฆฐ == ๋‹ค์ค‘ ํŒจ๋Ÿฌ๋‹ค์ž„ ์–ธ์–ด 1) ํ•จ์ˆ˜ํ˜• ํ”„๋กœ๊ทธ๋ž˜๋ฐ: ์ฝ”๋“œ ๊ฐ„๋žต, ํ…Œ์ŠคํŠธ๋‚˜ ์žฌ์‚ฌ์šฉ์„ฑ ์ฆ๊ฐ€, ๋žŒ๋‹ค์‹, ๊ณ ์ฐจ ํ•จ์ˆ˜๋ฅผ ์‚ฌ์šฉํ•ด ๊ตฌ์„ฑ, ์ˆœ์ˆ˜ ํ•จ์ˆ˜ 2) ๊ฐ์ฒด ์ง€ํ–ฅ ํ”„๋กœ๊ทธ๋ž˜๋ฐ ๐Ÿค”์ˆœ์ˆ˜ ํ•จ์ˆ˜ ๋ถ€์ž‘์šฉ(side-effect)์ด ์—†๋Š” ํ•จ์ˆ˜ -> ๋™์ผํ•œ ์ž…๋ ฅ ์ธ์ž์— ๋Œ€ํ•ด์„œ๋Š” ํ•ญ์ƒ ๊ฐ™์€ ๊ฒฐ๊ณผ๋ฅผ ์ถœ๋ ฅ, ๋ฐ˜ํ™˜ํ•จ -> ๊ฐ’์ด ์˜ˆ์ธก ๊ฐ€๋Šฅํ•˜์—ฌ ๊ฒฐ์ •์  ์กฐ๊ฑด -> ๊ฐ™์€ ์ธ์ž์— ๋Œ€ํ•˜์—ฌ ํ•ญ์ƒ ๊ฐ™์€ ๊ฐ’์„ ๋ฐ˜ํ™˜ -> ํ•จ์ˆ˜ ์™ธ๋ถ€์˜ ์–ด๋–ค ์ƒํƒœ๋„ ๋ฐ”๊พธ์ง€ ์•Š์Œ ์žฅ์  -> ์ž…๋ ฅ, ๋‚ด์šฉ์„ ๋ถ„๋ฆฌํ•˜๊ณ ..

02. ๋ณ€์ˆ˜์™€ ์ž๋ฃŒํ˜•, ์—ฐ์‚ฐ์ž

๐Ÿค”๋ณ€์ˆ˜ val (value) - ๋ถˆ๋ณ€ํ˜• (immutable) var (variable) - ๊ฐ€๋ณ€ํ˜• (mtable) ๐Ÿค”๋ณ€์ˆ˜์˜ ์„ ์–ธ val ๋ณ€์ˆ˜ ์ด๋ฆ„: ์ž๋ฃŒํ˜• = ๊ฐ’ ์ปดํŒŒ์ผ๋Ÿฌ๊ฐ€ ๊ฐ’์— ๋”ฐ๋ผ ๋ฐ์ดํ„ฐํ˜•์„ ์ถ”๋ก ํ•ด ์„ ์–ธ๋œ๋‹ค. (์ถ”๋ก  ํƒ€์ž… ํ™•์ธ: ctrl + shift + p) ๐Ÿค”๋ณ€์ˆ˜ ๊ทœ์น™ ์ˆซ์ž๋กœ ์‹œ์ž‘ํ•˜๋ฉด ์•ˆ๋œ๋‹ค. ํ‚ค์›Œ๋“œ๋กœ ๋ณ€์ˆ˜ ์ด๋ฆ„์„ ์‚ฌ์šฉํ•  ์ˆ˜ ์—†๋‹ค. ์˜๋ฏธ ์žˆ๋Š” ๋‹จ์–ด๋ฅผ ์‚ฌ์šฉํ•˜์—ฌ ๋งŒ๋“œ๋Š” ๊ฒƒ์ด ์ข‹๋‹ค. ์—ฌ๋Ÿฌ ๋‹จ์–ด๋ฅผ ์‚ฌ์šฉํ•˜์—ฌ ๋ณ€์ˆ˜ ์ด๋ฆ„์„ ์ง€์„ ๊ฒฝ์šฐ ์นด๋ฉœ ํ‘œ๊ธฐ๋ฒ•์„ ์‚ฌ์šฉํ•˜๋ผ. ๐Ÿค”์ถœ๋ ฅ ํ‘œํ˜„์‹๊ณผ $ ๊ธฐํ˜ธ ์‚ฌ์šฉํ•˜์—ฌ ๋ฌธ์ž์—ด ์ถœ๋ ฅํ•˜๊ธฐ println("username: $username, count: $count") ๐Ÿค”์ž๋ฃŒํ˜• 1) ์ •์ˆ˜ํ˜•: Long, Int, Short, Byte 2) ์‹ค์ˆ˜ํ˜•: Double, Float 3) ๋…ผ๋ฆฌํ˜•: Bo..

01. Kotlin์ด๋ž€

Kotlin ๐Ÿ™„์ฝ”ํ‹€๋ฆฐ(Kotlin) ์ด๋ž€? -๊ตฌ๊ธ€์—์„œ ์ง€์ •ํ•œ ์•ˆ๋“œ๋กœ์ด๋“œ ๊ณต์‹ ์–ธ์–ด -์ž๋ฐ”์™€ 100% ํ˜ธํ™˜์„ฑ์œผ๋กœ ๋ผ์ด๋ธŒ๋Ÿฌ๋ฆฌ๋ฅผ ๊ทธ๋Œ€๋กœ ์‚ฌ์šฉ ๊ฐ€๋Šฅ - JVM์ƒ์—์„œ ๋™์ž‘์‹œํ‚ค์ง€๋งŒ ๋‹ค์–‘ํ•œ ํ”Œ๋žซํผ์—์„œ๋„ ์‹คํ–‰ ๊ฐ€๋Šฅ - ํ•จ์ˆ˜ํ˜• ํ”„๋กœ๊ทธ๋ž˜๋ฐ ๊ธฐ๋ฒ•์ธ ๋žŒ๋‹ค์‹, ๊ณ ์ฐจ ํ•จ์ˆ˜๋ฅผ ์ œ๊ณตํ•˜๋ฉด์„œ ์ฝ”๋“œ์˜ ์ถ•์•ฝ ๋ฐ ์ตœ์ ํ™” ๊ฐ€๋Šฅ - ๊ฐ์ฒด์ง€ํ–ฅ ํ”„๋กœ๊ทธ๋ž˜๋ฐ ๊ธฐ๋ฒ•๋„ ๊ฐ™์ด ์ œ๊ณตํ•˜๋Š” ๋ฉ€ํ‹ฐ ํŒจ๋Ÿฌ๋‹ค์ž„ ์–ธ์–ด - ์ƒ์‚ฐ์„ฑ์ด ๋งค์šฐ ๋†’์Œ ๐Ÿ™„๋ชฉํ‘œ ๋ชจ๋“  ๊ฐœ๋ฐœ์„ ๋‹ค์–‘ํ•œ ํ”Œ๋žซํผ์—์„œ ๊ฐœ๋ฐœํ•  ์ˆ˜ ์žˆ๋„๋ก ํ•˜๋Š” ๊ฒƒ ๐Ÿ™„ํŠน์ง• ์ฝ”๋“œ ๊ฐ„๊ฒฐ, ๋‹ค์žฌ๋‹ค๋Šฅ, ํ˜ธํ™˜์„ฑ์ด ๋†’์Œ ๋ฌธ์žฅ ๋์— ์„ธ๋ฏธ์ฝœ๋ก ์€ ์˜ต์…˜ ์•ˆ๋“œ๋กœ์ด๋“œ ๊ณต์‹ ์–ธ์–ด๋กœ ์ถ”๊ฐ€ ๋ณ€์ˆ˜๋Š” Nullable(๋„ ๊ฐ’ ์‚ฌ์šฉ ๊ฐ€๋Šฅ)๊ณผ NotNull๋กœ ๋‚˜๋‰จ -> ๋ณ€์ˆ˜ ์„ ์–ธ ์‹œ '?'๋ฅผ ๋ถ™์—ฌ Nullable๋กœ ๋งŒ๋“ค ์ˆ˜ ์žˆ์Œ ๐Ÿ™„์‚ฌ์šฉ ๊ฐ€๋Šฅํ•œ ํ”Œ๋žซํผ Kotlin/JV..

00. Kotlin๐Ÿ‘

๋‚ด ๋งˆ์Œ๋Œ€๋ฃจ Kotlin ๊ฐ•์˜ ๋“ฃ๊ตฌ ์ •๋ฆฌํ•˜๋Š” ๊ณต๊ฐ„์ž…๋‹ˆ๋‹ค ๊ฐ•์˜) boostcourse - ์ฝ”ํ‹€๋ฆฐ ํ”„๋กœ๊ทธ๋ž˜๋ฐ ๊ธฐ๋ณธ1 www.boostcourse.org/mo132 ์ฝ”ํ‹€๋ฆฐ ํ”„๋กœ๊ทธ๋ž˜๋ฐ ๊ธฐ๋ณธ 1 ๋ถ€์ŠคํŠธ์ฝ”์Šค ๋ฌด๋ฃŒ ๊ฐ•์˜ www.boostcourse.org