๋ณธ๋ฌธ ๋ฐ”๋กœ๊ฐ€๊ธฐ
๐Ÿ“Œ Language/Swift

Swift indices,compactMap,contentsOf

by Fomagran ๐Ÿ’ป 2020. 4. 4.
728x90
๋ฐ˜์‘ํ˜•

์ƒˆ๋กญ๊ฒŒ ์•ˆ ๊ฒƒ indices,contentsOf,compactMap

 

๋จผ์ € indices๋Š” ์•ˆ์ „ํ•˜๊ฒŒ ๋ฐฐ์—ด์„ ๋„๋Š” ๊ฒƒ์ธ๋ฐ

๋งŒ์•ฝ ๋ฐฐ์—ด์ด var a= [1,2,3,4]๋ผ๋ฉด a[6]์„ ๋„ฃ๋Š” ์ˆœ๊ฐ„ ์—๋Ÿฌ๊ฐ€ ๋‚œ๋‹ค.

ํ•˜์ง€๋งŒ ์ด๋ ‡๊ฒŒ Array๋ฅผ ํ™•์žฅํ•ด์„œ indices๊ฐ€ index๋ฒ”์œ„๋ผ๋ฉด ๊ฐ’์„ ๋ฐ˜ํ™˜ํ•˜๊ณ  ์•„๋‹ˆ๋ผ๋ฉด nil์„ ๋ฐ˜ํ™˜ํ•˜๋„๋ก ํ•œ๋‹ค.

1

2

3

4

5

extension Array {

    subscript (safe index: Int-> Element? {

        return indices ~= index ? self[index] : nil    

    }

}

http://colorscripter.com/info#e" target="_blank" style="color:#e5e5e5text-decoration:none">Colored by Color Scripter

์•„๋ž˜์™€ ๊ฐ™์ด ๋ฐฐ์—ด์˜ ๋ฒ”์œ„๋ฅผ ๋ฒ—์–ด๋‚˜๋ฉด nil๊ฐ’์„ ๋ฐ˜ํ™˜ํ•œ๋‹ค.

๊ทธ ๋‹ค์Œ compactMap์€ map๊ณผ์˜ ์ฐจ์ด์ ์€ ๋งต์€ ์˜ต์…”๋„๋กœ ๋ฐ˜ํ™˜์ด๋˜๊ณ  ์ปดํŒฉํŠธ๋งต์€ ์˜ต์…”๋„ ์ค‘์— nil๊ฐ’์ด ์•„๋‹Œ ๊ฑธ๋กœ ๋ฐ˜ํ™˜์ด ๋˜๊ธฐ ๋•Œ๋ฌธ์— ์ผ๋ฐ˜ ๊ฐ’์œผ๋กœ ๋ฐ˜ํ™”์ด ๋œ๋‹ค. ์•„๋ž˜์™€ ๊ฐ™์ด compactMap์„ ํ•œ a๋Š” [1,2,3,4]๋ฅผ ๊ฐ–๊ณ  ์ผ๋ฐ˜ ๋งต์€ ์˜ต์…”๋„๋กœ ๋ฐ˜ํ™˜์ด ๋˜๊ธฐ ๋•Œ๋ฌธ์— ์˜ต์…”๋„์„ ํ’€์–ด์ค˜์•ผ ์ผ๋ฐ˜์ ์ธ [1,2,3,4]๋กœ ๋ฐ˜ํ™˜๋œ๋‹ค.

๊ทธ๋ฆฌ๊ณ  ๋งˆ์ง€๋ง‰์œผ๋กœ contentsOf๋Š” appendํ•  ๋•Œ ์•ˆ์— ๋ฒ”์œ„๋ฅผ ๋„ฃ์–ด์ฃผ๋ฉด ๋ฒ”์œ„๋งŒํผ ๋ฐฐ์—ด์— ์ถ”๊ฐ€๊ฐ€ ๋œ๋‹ค.

์•„๋ž˜์™€ ๊ฐ™์ด 10...15๋ฅผ ๋„ฃ์œผ๋ฉด 10,11,12,13,14,15๊ฐ€ ์ถ”๊ฐ€๊ฐ€๋œ๋‹ค.

728x90
๋ฐ˜์‘ํ˜•

๋Œ“๊ธ€