ABOUT ME

-

Today
-
Yesterday
-
Total
-
  • [๐Ÿ ์ดํŽ™ํ‹ฐ๋ธŒ ์ฝ”ํ‹€๋ฆฐ] 2 ๊ฐ€๋…์„ฑ
    Book/Effective Kotlin 2023. 6. 6. 00:09
    ๋ฐ˜์‘ํ˜•

    ๐Ÿ€ item 11 ๊ฐ€๋…์„ฑ์„ ๋ชฉํ‘œ๋กœ ์„ค๊ณ„ํ•˜๋ผ

    <ํด๋ฆฐ ์ฝ”๋“œ> ๊ฐœ๋ฐœ์ž๊ฐ€ ์ฝ”๋“œ๋ฅผ ์ž‘์„ฑํ•˜๋Š”๋ฐ๋Š” 1๋ถ„ ๊ฑธ๋ฆฌ์ง€๋งŒ, ์ด๋ฅผ ์ฝ๋Š” ๋ฐ๋Š” 10๋ถ„์ด ๊ฑธ๋ฆฐ๋‹ค.

    ์ˆ™๋ จ๋œ ๊ฐœ๋ฐœ์ž๋งŒ์„ ์œ„ํ•œ ์ฝ”๋“œ๋Š” ์ข‹์€ ์ฝ”๋“œ๊ฐ€ ์•„๋‹ˆ๋‹ค.

    ๐Ÿ€ item 12 ์—ฐ์‚ฐ์ž ์˜ค๋ฒ„๋กœ๋“œ ํ•  ๋•Œ๋Š” ์˜๋ฏธ์— ๋งž๊ฒŒ ์‚ฌ์šฉํ•˜๋ผ

    ์—ฐ์‚ฐ์ž ์˜ค๋ฒ„๋กœ๋“œ ํ•  ๋•Œ๋Š” ์˜๋ฏธ์— ๋งž๊ฒŒ ์‚ฌ์šฉํ•ด์•ผ ํ•œ๋‹ค.

    ๊ผญ ์—ฐ์‚ฐ์ž ๊ฐ™์€ ํ˜•ํƒœ๋กœ ์‚ฌ์šฉํ•˜๊ณ  ์‹ถ๋‹ค๋ฉด infix ํ™•์žฅ ํ•จ๋‘ ๋˜๋Š” ํ†ฑ๋ ˆ๋ฒจ ํ•จ์ˆ˜ ํ™œ์šฉํ•ด๋ผ.

    • infix ๋ž€?
      infix fun Int.add(x: Int): Int {
          return this + x
      }
      
      fun main() {
          println(3.add(5))		// 8
          println(3 add 5)		// 8
      }
      
      3.add(5)์™€ ๊ฐ™์ด ํ˜ธ์ถœ ํ•  ์ˆ˜๋„ ์žˆ๊ณ , infix๋ฅผ ๋ถ™์–ด ์žˆ๋Š” ๊ฒƒ๋งŒ์œผ๋กœ 3 add 5์™€ ๊ฐ™์ด ์ค‘๊ฐ„ ๊ธฐ๋ฒ•์œผ๋กœ ์‚ฌ์šฉํ•˜๋Š” ๊ฒƒ๋„ ๊ฐ€๋Šฅ

    ๐Ÿ€ item 13 Unit? ์„ ๋ฆฌํ„ดํ•˜์ง€ ๋ง๋ผ

    Q) ํ•จ์ˆ˜์—์„œ Unit? ์„ ๋ฆฌํ„ดํ•œ๋‹ค๋ฉด, ๊ทธ ์ด์œ ๋Š” ๋ฌด์—‡์ผ๊นŒ์š”?

    Bollean ๊ณผ Unit? ํƒ€์ž…์€ ์„œ๋กœ ๋ฐ”๊ฟ”์„œ ์‚ฌ์šฉํ•  ์ˆ˜ ์žˆ๋‹ค.

    Q) ์ด๋Ÿฐ ์ฝ”๋“œ๋ฅผ ์‚ฌ์šฉํ•ด๋„ ๊ดœ์ฐฎ์„๊นŒ์š”?

    ์•„๋‹ˆ์š”. ์ฝ”๋“œ๋ฅผ ์‰ฝ๊ฒŒ ์ฝ์„ ์ˆ˜ ์—†๊ณ  ์˜คํ•ด๋ฅผ ๋ถˆ๋Ÿฌ์ผ์œผํ‚ค๊ธฐ ์‰ฝ๋‹ค.

    ๐Ÿ€ item 14 ๋ณ€์ˆ˜ ํƒ€์ž…์ด ๋ช…ํ™•ํ•˜์ง€ ์•Š์€ ๊ฒฝ์šฐ ํ™•์‹คํ•˜๊ฒŒ ์ง€์ •ํ•˜๋ผ

    val data = getSomeData()
    

    ํƒ€์ž…์„ ์ˆจ๊ธฐ๊ณ  ์žˆ๋‹ค. > ๊ฐ€๋…์„ฑ์ด ๋–จ์–ด์ง„๋‹ค.

    val data: UserData = getSomeData()
    

    ๊ฐ€๋…์„ฑ ํ–ฅ์ƒ

    ํƒ€์ž…์€ ๊ฐœ๋ฐœ์ž์™€ ์ปดํŒŒ์ผ๋Ÿฌ ๋ชจ๋‘์—๊ฒŒ ์ค‘์š”ํ•œ ์ •๋ณด์ด๋‹ค.

    ์ถ”๋ก  ์‹œ์Šคํ…œ์€ ์ƒํ™ฉ์— ๋งž๊ฒŒ ์‚ฌ์šฉํ•˜์ž!

    ๐Ÿ€ item 15 ๋ฆฌ์‹œ๋ฒ„๋ฅผ ๋ช…์‹œ์ ์œผ๋กœ ์ฐธ์กฐํ•˜๋ผ

    ์—ฌ๋Ÿฌ๊ฐœ์˜ ๋ฆฌ์‹œ๋ฒ„๊ฐ€ ์žˆ๋Š” ์ƒํ™ฉ ๋“ฑ์—์„œ๋Š” ๋ฆฌ์‹œ๋ฒ„๋ฅผ ๋ช…์‹œ์ ์œผ๋กœ ์ ์–ด์ฃผ๋Š” ๊ฒƒ์ด ์ข‹๋‹ค.

    2023.05.28 - [kotlin] - [Kotlin] Scope Function : apply, run, with, also, let ์ •๋ฆฌ

     

    [Kotlin] Scope Function : apply, run, with, also, let ์ •๋ฆฌ

    ๐Ÿ”Ž Scope function ๋ž€? ์ œ๊ณต๋œ ๋žŒ๋‹ค ์‹์ด ์žˆ๋Š” ๊ฐ์ฒด์—์„œ ์ด๋Ÿฌํ•œ ํ•จ์ˆ˜๋ฅผ ํ˜ธ์ถœํ•˜๋ฉด ์ž„์‹œ ๋ฒ”์œ„๊ฐ€ ํ˜•์„ฑ ๋˜๋Š”๋ฐ, ์ด ๋ฒ”์œ„ ๋‚ด์—์„œ๋Š” ์ด๋ฆ„ ์—†์ด ๊ฐœ์ฒด์— ์ ‘๊ทผํ•  ์ˆ˜ ์žˆ๋‹ค. ์ฆ‰ ํŠน์ • ๋ฒ”์œ„ {} ์•ˆ์—์„œ ํŠน์ • ๊ฐ์ฒด๋ฅผ t

    tral-lalala.tistory.com

    ๐Ÿ€ item 16 ํ”„๋กœํผํ‹ฐ๋Š” ๋™์ž‘์ด ์•„๋‹ˆ๋ผ ์ƒํƒœ๋ฅผ ๋‚˜ํƒ€๋‚ด์•ผ ํ•œ๋‹ค.

    ํ”„๋กœํผํ‹ฐ ๋Œ€์‹  ํ•จ์ˆ˜๋ฅผ ์‚ฌ์šฉํ•˜๋Š” ๊ฒƒ์ด ์ข‹์€ ๊ฒฝ์šฐ

    • ์—ฐ์‚ฐ ๋น„์šฉ์ด ๋†’๊ฑฐ๋‚˜ ๋ณต์žก๋„๊ฐ€ O(1) ๋ณด๋‹ค ํฐ ๊ฒฝ์šฐ
    • ๋น„์ฆˆ๋‹ˆ์Šค ๋กœ์ง์„ ํฌํ•จํ•˜๋Š” ๊ฒฝ์šฐ
    • ๊ฒฐ์ •์ ์ด์ง€ ์•Š์€ ๊ฒฝ์šฐ
    • ๋ณ€ํ™˜์˜ ๊ฒฝ์šฐ
    • ๊ฒŒํ„ฐ์—์„œ ํ”„๋กœํผํ‹ฐ์˜ ์ƒํƒœ ๋ณ€๊ฒฝ์ด ์ผ์–ด๋‚˜์•ผํ•˜๋Š” ๊ฒฝ์šฐ

    ๋ฐ˜๋Œ€๋กœ ์ƒํƒœ๋ฅผ ์ถ”์ถœ/์„ค์ •ํ•  ๋•Œ๋Š” ํ”„๋กœํผํ‹ฐ๋ฅผ ์‚ฌ์šฉํ•ด์•ผํ•œ๋‹ค. ํŠน๋ณ„ํ•œ ์ด์œ ๊ฐ€ ์—†๋‹ค๋ฉด ํ•จ์ˆ˜๋ฅผ ์‚ฌ์šฉํ•˜๋ฉด ์•ˆ๋œ๋‹ค.

     

    ํ”„๋กœํผํ‹ฐ - ์ƒํƒœ ์ง‘ํ•ฉ

    ํ•จ์ˆ˜ - ํ–‰๋™

    ๐Ÿ€ item 17 ์ด๋ฆ„ ์žˆ๋Š” ์•„๊ทœ๋จผํŠธ๋ฅผ ์‚ฌ์šฉํ•˜๋ผ

    val text = (1..10).joinToString("|")
    
    // ์•„๊ทœ๋จผํŠธ ์‚ฌ์šฉ
    val text = (1..10).joinToString(separator = "|")
    

    ์žฅ์ 

    • ์ด๋ฆ„์„ ๊ธฐ๋ฐ˜์œผ๋กœ ๊ฐ’์ด ๋ฌด์—‡์„ ํƒ€๋‚˜๋‚ด๋Š”์ง€ ์•Œ ์ˆ˜ ์žˆ๋‹ค.
    • ํŒŒ๋ผ๋ฏธํ„ฐ ์ž…๋ ฅ ์ˆœ์„œ์™€ ์ƒ๊ด€ ์—†์œผ๋ฏ€๋กœ ์•ˆ์ „ํ•˜๋‹ค

    ์ถ”์ฒœํ•˜๋Š” ๊ฒฝ์šฐ

    1. ๋””ํดํŠธ ์•„๊ทœ๋จผํŠธ
    2. ๊ฐ™์€ ํƒ€์ž…์˜ ํŒŒ๋ผ๋ฏธํ„ฐ๊ฐ€ ๋งŽ์€ ๊ฒฝ์šฐ
    3. ํ•จ์ˆ˜ ํƒ€์ž…์˜ ํŒŒ๋ผ๋ฏธํ„ฐ๊ฐ€ ์žˆ๋Š” ๊ฒฝ์šฐ

    ๐Ÿ€ item 18 ์ฝ”๋”ฉ ์ปจ๋ฒค์…˜์„ ์ง€์ผœ๋ผ

    ๋ฐ˜์‘ํ˜•
Designed by Tistory.