๋ณธ๋ฌธ ๋ฐ”๋กœ๊ฐ€๊ธฐ
2023 ์•ˆ๋“œ๋กœ์ด๋“œ/์•ˆ๋“œ๋กœ์ด๋“œ ์Šคํ„ฐ๋””

Unit2-1 Kotlin์—์„œ null ํ—ˆ์šฉ ์—ฌ๋ถ€ ์‚ฌ์šฉ

by hyeonha 2023. 1. 10.

๋ชฉ์ฐจ

    2.  null ํ—ˆ์šฉํ•˜๋Š” ๋ณ€์ˆ˜ ์‚ฌ์šฉ 

    -> null์„ ์‚ฌ์šฉํ•˜์—ฌ ๋ณ€์ˆ˜์™€ ์—ฐ๊ฒฐ๋œ ๊ฐ’์ด ์—†์Œ์„ ๋‚˜ํƒ€๋‚ผ ์ˆ˜ ์žˆ๋‹ค.

     null์„ ํ—ˆ์šฉํ•˜๋Š” ์œ ํ˜•๊ณผ null์„ ํ—ˆ์šฉํ•˜์ง€ ์•Š๋Š” ์œ ํ˜• 

    null์„ ํ—ˆ์šฉํ•˜๋Š” ์œ ํ˜• : null์„ ๋ณด์œ ํ•  ์ˆ˜ ์žˆ๋Š” ๋ณ€์ˆ˜

    null์„ ํ—ˆ์šฉํ•˜์ง€ ์•Š๋Š” ์œ ํ˜• : null์„ ๋ณด์œ ํ•  ์ˆ˜ ์—†๋Š” ๋ณ€์ˆ˜ 

     

     

    Kotlin์—์„œ null์„ ํ—ˆ์šฉํ•˜๋Š” ๋ณ€์ˆ˜๋ฅผ ์„ ์–ธํ•˜๋ ค๋ฉด ์œ ํ˜• ๋์— ? ์—ฐ์‚ฐ์ž๋ฅผ ์ถ”๊ฐ€ํ•ด์•ผํ•œ๋‹ค. 

    String? ์œ ํ˜•์€ ๋ฌธ์ž์—ด์ด๋‚˜ null์„ ๋ณด์œ ํ•  ์ˆ˜ ์žˆ์ง€๋งŒ String ์œ ํ˜•์€ ๋ฌธ์ž์—ด๋งŒ ๋ณด์œ  ๊ฐ€๋Šฅ 

    null์„ ํ—ˆ์šฉํ•˜๋Š” ์œ ํ˜•์ด ์—†์œผ๋ฉด Kotlin์ปดํŒŒ์ผ๋Ÿฌ๋Š” null์„ ํ—ˆ์šฉํ•˜์ง€ ์•Š๋Š” ์œ ํ˜•์ด๋ผ๊ณ  ์ถ”๋ก ํ•œ๋‹ค

    favoriteActor์€ ์›๋ž˜ ๋ฌธ์ž์—ด์„ ๋ณด์œ ํ–ˆ์œผ๋ฉฐ null๋กœ ๋ณ€ํ™˜๋œ๋‹ค.

    3. null์„ ํ—ˆ์šฉํ•˜๋Š” ๋ณ€์ˆ˜ ์ฒ˜๋ฆฌ

     

    null์„ ํ—ˆ์šฉํ•˜๋Š” ๋ณ€์ˆ˜์˜ ์†์„ฑ์— ์—‘์„ธ์Šค

     

    ๋ณ€์ˆ˜์˜ ๋ฉค๋ฒ„์— ์—‘์„ธ์Šคํ•˜๋Š” ๊ฒฝ์šฐ ๋ณ€์ˆ˜๋Š” null์ผ ์ˆ˜ ์—†๋‹ค. 

    ์•ฑ ์‹คํ–‰ ์ค‘์— null์ธ ๋ณ€์ˆ˜์˜ ๋ฉค๋ฒ„์— ์—‘์„ธ์Šค(null ์ฐธ์กฐ) ํ•˜๋ ค๋Š” ์‹œ๋„๊ฐ€ ์žˆ๋Š” ๊ฒฝ์šฐ null๋ณ€์ˆ˜์— ์†์„ฑ์ด๋‚˜ ๋ฉ”์„œ๋“œ๊ฐ€ ํฌํ•จ๋˜์–ด์žˆ์ง€ ์•Š์œผ๋ฏ€๋กœ ์•ฑ์ด ๋น„์ •์ƒ์ ์œผ๋กœ ์ข…๋ฃŒ๋œ๋‹ค. -> ๋Ÿฐํƒ€์ž„ ์˜ค๋ฅ˜ 

    ์ฝ”๋“œ๋ฅผ ์ปดํŒŒ์ผํ•˜๊ณ  ์‹คํ–‰ํ•œ ํ›„์— ์˜ค๋ฅ˜๊ฐ€ ๋ฐœ์ƒํ•œ๋‹ค.

     

    Null ๊ฒ€์‚ฌ๋Š” ๋ณ€์ˆ˜์— ์—‘์„ธ์Šคํ•˜์—ฌ null์„ ํ—ˆ์šฉํ•˜์ง€ ์•Š๋Š” ์œ ํ˜•์œผ๋กœ ์ฒ˜๋ฆฌํ•˜๊ธฐ ์ „์— ๋ณ€์ˆ˜๊ฐ€ null์ธ์ง€ ํ™•์ธํ•˜๋Š” ํ”„๋กœ์„ธ์Šค์ด๋‹ค. 

    Kotlin์˜ null์•ˆ์ „์„ฑ ํŠน์„ฑ ๋•๋ถ„์— Kotlin ์ปดํŒŒ์ผ๋Ÿฌ๊ฐ€ null์„ ํ—ˆ์šฉํ•˜๋Š” ์œ ํ˜•์— ๊ด€ํ•ด null๊ฒ€์‚ฌ๋ฅผ ๊ฐ•์ œํ•˜๋ฏ€๋กœ ์ด๋Ÿฌํ•œ ๋Ÿฐํƒ€์ž„ ์˜ค๋ฅ˜๊ฐ€ ๋ฐฉ์ง€๋œ๋‹ค.   

    ์™„์ „ ์ดํ•ด๋Š” ์•ˆ๋จ...

     

    ?. ์•ˆ์ „ ํ˜ธ์ถœ ์—ฐ์‚ฐ์ž ์‚ฌ์šฉ 

    ?. ์•ˆ์ „ ํ˜ธ์ถœ ์—ฐ์‚ฐ์ž๋ฅผ ์‚ฌ์šฉํ•˜์—ฌ null์„ ํ—ˆ์šฉํ•˜๋Š” ๋ณ€์ˆ˜์˜ ๋ฉ”์„œ๋“œ๋‚˜ ์†์„ฑ์— ์—‘์„ธ์Šค ํ•  ์ˆ˜ ์žˆ๋‹ค. 

    Kotlin ์ปดํŒŒ์ผ๋Ÿฌ๊ฐ€ null ์ฐธ์กฐ์— ๊ด€ํ•œ ๋ฉค๋ฒ„ ์—‘์„ธ์Šค ์‹œ๋„๋ฅผ ์ค‘์ง€ํ•˜๊ณ  ์—‘์„ธ์Šค๋œ ๋ฉค๋ฒ„์˜ null์„ ๋ฐ˜ํ™˜ํ•œ๋‹ค.

    null ๋ณ€์ˆ˜์˜ length ์†์†ก์— ์—‘์„ธ์Šคํ•˜๋ ค๊ณ  ํ•ด๋„ ํ”„๋กœ๊ทธ๋žจ์ด ๋น„์ •์ƒ ์ข…๋ฃŒ๋˜์ง€ ์•Š๋Š”๋‹ค. 

    null์ด ์•„๋‹Œ assertion ์—ฐ์‚ฐ์ž !! ์‚ฌ์šฉ

    null์„ ํ—ˆ์šฉํ•˜๋Š” ๋ณ€์ˆ˜์˜ ๋ฉ”์„œ๋“œ๋‚˜ ์†์„ฑ์— ์—‘์„ธ์Šค ๊ฐ€๋Šฅ

    ?, ์•ˆ์ „ ํ˜ธ์ถœ ์—ฐ์‚ฐ์ž์™€ ๋‹ฌ๋ฆฌ null์ด ์•„๋‹Œ !! assertion ์—ฐ์‚ฐ์ž๋ฅผ ์‚ฌ์šฉํ•˜๋ฉด null์„ ํ—ˆ์šฉํ•˜๋Š” ๋ณ€์ˆ˜๊ฐ€ ์‹ค์ œ๋กœ null์ผ ๋•Œ NullPointerException ์˜ค๋ฅ˜๊ฐ€ ๋ฐœ์ƒํ•  ์ˆ˜ ์žˆ๋‹ค. ๋”ฐ๋ผ์„œ ๋ณ€์ˆ˜๊ฐ€ ํ•ญ์ƒ null ๋น„ํ—ˆ์šฉ ๋ณ€์ˆ˜์ด๊ฑฐ๋‚˜ ์ ์ ˆํ•œ ์˜ˆ์™ธ ์ฒ˜๋ฆฌ๊ฐ€ ์„ค์ •๋œ ๊ฒฝ์šฐ์—๋งŒ ์‹คํ–‰ํ•ด์•ผํ•œ๋‹ค. 

     

    728x90