DEV_Larva

๋ฐฐ์—ด ๋ณธ๋ฌธ

iOS/Swift ๋ฌธ๋ฒ•

๋ฐฐ์—ด

NelchuPapa 2022. 7. 6. 21:56
๋ฐ˜์‘ํ˜•

๐Ÿง‘‍๐Ÿ’ป์ด๋ฒˆ Swift ์‹œ๊ฐ„์— ๋ฐฐ์›Œ๋ณผ ๊ฒƒ์€  ๋‹ค์Œ๊ณผ ๊ฐ™๋‹ค. ๐Ÿ‘จ๐Ÿป‍๐Ÿ’ป

 

  • ๋ฐฐ์—ด 
  • ๋ฐฐ์—ด์˜ ๋ฐ์ดํ„ฐ๋ฅผ ์ €์žฅ ํ•˜๊ณ  ์ฐพ๋Š” ๋ฐฉ๋ฒ• 
  • ๋”์šฑ ๋น ๋ฅด๊ฒŒ ๋ฐ์ดํ„ฐ๋ฅผ ์ฐพ๋Š” ๋ฐฉ๋ฒ• 
  • ์—ด๊ฑฐํ˜•์„ ์‚ฌ์šฉํ•˜๋Š” ๋ฐฉ๋ฒ• 

1. ๋ฐฐ์—ด

 

์šฐ๋ฆฌ๋Š” ์š”์ผ, ํ•™์ƒ ์ด๋ฆ„, ๋„์‹œ ์ด๋ฆ„ ๋“ฑ๋“ฑ ๋งŽ์€ ๋ฐ์ดํ„ฐ๋ฅผ ๊ฐ™์ด ์ €์žฅ ํ•˜๋Š”๊ฒƒ์ด ๋งค์šฐ ์ผ๋ฐ˜์ ์ธ๋ฐ Swift์—์„œ๋Š” array ์‚ฌ์šฉํ•˜์—ฌ ๋ฐ์ดํ„ฐ ๊ทธ๋ฃนํ™”๋ฅผ ์ˆ˜ํ–‰ํ•œ๋‹ค. 

 

๊ทธ๋ฃน ๋‚ด๋ถ€์—๋Š” ์•ž์„œ ๋ฐฐ์šด Intํ˜• ๋ถ€ํ„ฐ String, Doubleํ˜• ๋ชจ๋‘ ๊ฐ€๋Šฅํ•˜๋ฉฐ ์‚ฌ์šฉ์ž๊ฐ€ ์›ํ•˜๋Š” ๋งŒํผ ๊ทธ๋ฃนํ™” ํ•  ์ˆ˜ ์žˆ๋‹ค. 

 

๊ทธ๋ ‡๋‹ค๋ฉด ๋ฐ”๋กœ ๋ฐฐ์—ด์„ ์ƒ์„ฑ ํ•ด๋ณด์ž!๐Ÿ’ช

 

 

๋ฐฐ์—ด์„ ์ƒ์„ฑ ํ•˜๋Š”๊ฒƒ์€ ์•ž์„œ ๋ฐฐ์šด ๋ณ€์ˆ˜๋ฅผ ์„ ์–ธ ํ•˜๋Š”๊ฒƒ๊ณผ ์œ ์‚ฌํ•˜๊ฒŒ ๋งค์šฐ ์‰ฝ๊ฒŒ ํ•  ์ˆ˜ ์žˆ๋‹ค. 

MovieStar์— ํ• ๋‹น ๋˜์–ด์žˆ๋Š” ์‚ฌ๋žŒ๋“ค์˜ ์ด๋ฆ„์€ ๋ณด๊ธฐ์—์„œ ๋ณด๋“ฏ " "๋กœ ๊ฐ์‹ธ์ ธ ์žˆ์ง€๋งŒ, numbers, temperatures์˜ ๊ฒฝ์šฐ " "์€  ์—†๋‹ค. 

 

 

์ด๋ฒˆ์—๋Š” ๋ฐฐ์—ด์— ํ• ๋‹น ๋˜์–ด ์žˆ๋Š” ๊ฐ’์„ ์š”์†Œ๋ณ„๋กœ ์ถœ๋ ฅ ํ•ด๋ณด์ž. 

๋ฐฐ์—ด์€ ์ œ์ผ ์ฒ˜์Œ ๊ฐ’์ด ์ฒซ๋ฒˆ์งธ ์ˆœ์„œ๊ฐ€ ์•„๋‹ˆ๋‹ค. ์ด๊ฒƒ ๋˜ํ•œ ๋ฐ”๋กœ ์˜ˆ์‹œ๋กœ ํ™•์ธ ํ•ด๋ณด์ž!

 

๊ฒฐ๊ณผ๋ฅผ ๋ณด๋ฉด MovieStar์— ์ฒซ๋ฒˆ์งธ๋กœ ํ• ๋‹น ๋˜์–ด ์žˆ๋Š” ํ™๊ธธ๋™์ด๋ผ๋Š” ๊ฐ’์ด 0๋ฒˆ์งธ์— ํ• ๋‹น ๋˜์–ด์žˆ๋Š”๊ฒƒ์„ ํ™•์ธ ํ•  ์ˆ˜์žˆ๋‹ค. ์ด๋Š” ๋ฐฐ์—ด์—์„œ ํ”ํžˆ๋“ค ์‹ค์ˆ˜ ํ•˜๊ธฐ ์‰ฌ์šด ์ ์ธ๋ฐ ๋ฐฐ์—ด์—์„œ ์ฒซ ๋ฒˆ์งธ ์š”์†Œ๋Š” 0๋ฒˆ ๋ถ€ํ„ฐ์ด๋‹ค.

 

 

 

1-1 ๋ฐฐ์—ด ์ˆ˜์ •

 

 ์ด๋ฒˆ์—๋Š” ๋ฐฐ์—ด์— ํ• ๋‹น ๋˜์–ด ์žˆ๋Š” ๊ฐ’์„ ์ˆ˜์ • ํ•ด๋ณด์ž! 

 

(1) append

append๋Š” ๋ง๊ทธ๋Œ€๋กœ ๋”ํ•˜๋Š” ๊ฒƒ์ด๋‹ค. ๊ธฐ์กด์— ์žˆ๋˜ ๋ฐฐ์—ด์— ์›ํ•˜๋Š” ๊ฐ’์„ ์ถ”๊ฐ€์ ์œผ๋กœ ํ• ๋‹น ํ•ด์ค„์ˆ˜ ์žˆ๋Š”๋ฐ ๋งˆ์ง€๋ง‰์— ๋“ค์–ด์˜จ ๋ฐ์ดํ„ฐ์˜ ๊ฒฝ์šฐ ๊ธฐ์กด์˜ ๋ฐฐ์—ด๊ฐ’์—์„œ ๋งจ ๋งˆ์ง€๋ง‰์— ์ถ”๊ฐ€ ๋œ๋‹ค. 

ํ•ด๋‹น ๊ฒฐ๊ณผ๋ฅผ ํ†ตํ•ด append๋ฅผ ์ด์šฉํ•˜์—ฌ ๋ฐฐ์—ด์— ๊ฐ’์„ ์ •์ƒ์ ์œผ๋กœ ์ถ”๊ฐ€๋œ๊ฒƒ์„ ํ™•์ธ ํ•  ์ˆ˜ ์žˆ์—ˆ๋‹ค.

 

์•„ ๊ทธ๋ฆฌ๊ณ  ๋งˆ์ง€๋ง‰์— ์žˆ๋Š” temperatures์˜ ๊ฒฝ์šฐ Doubleํ˜•์ด์˜€์ง€๋งŒ Chris๋ผ๋Š” ๊ฐ’์„ ์ถ”๊ฐ€ ํ•˜์˜€๊ธฐ ๋•Œ๋ฌธ์— ์ด ๊ฒฝ์šฐ ์—๋Ÿฌ๊ฐ€ ๋ฐœ์ƒํ•ฉ๋‹ˆ๋‹ค!

 

 

 

let firstBeatle = beatles[0]
let firstNumber = numbers[0]
let notAllowed = firstBeatle + firstNumber

 

๋˜ํ•œ ๋ฐฐ์—ด์˜ ๊ฐ’์ด ์„œ๋กœ ๋‹ค๋ฅธ ํ˜•์ธ ๊ฒฝ์šฐ ๋ฐฐ์—ด์ด๋ผ๋„ ๋ฐฐ์—ด๋ผ๋ฆฌ์˜ ํ•ฉ์น˜๋Š” ์ž‘์—… ๋˜ํ•œ ์—๋Ÿฌ๊ฐ€ ๋ฐœ์ƒํ•œ๋‹ค.

 

์ด๋Š” ๋‘˜๋‹ค ๋ฐฐ์—ด์ด์ง€๋งŒ ํ•˜๋‚˜๋Š” ๋ฌธ์ž์—ด ๋ฐฐ์—ด์ด๊ณ  ๋‹ค๋ฅธ ํ•˜๋‚˜๋Š” ์ •์ˆ˜ ๋ฐฐ์—ด์ธ ํŠน์ˆ˜ ์œ ํ˜•์˜ ๋ฐฐ์—ด์ด๊ธฐ ๋•Œ๋ฌธ์— ํ•ฉ์น˜์ง€ ๋ชปํ•˜๊ฒŒ ๋ฉ๋‹ˆ๋‹ค. 

 

 

1 - 2 ๋ฐฐ์—ด์„ ์ด์šฉํ•œ ๊ธฐ๋Šฅ 

 

(1) .count

 

count ๋Š” ๋ฐฐ์—ด์— ๋ช‡ ๊ฐœ์˜ ํ•ญ๋ชฉ์ด ์žˆ๋Š”์ง€ ์ฝ๋Š”๋ฐ ์‚ฌ์šฉํ•œ๋‹ค.

 

 

๋นˆ ๋ฐฐ์—ด์„ ์ƒ์„ฑ ํ•œ ํ›„ ํ•ญ๋ชฉ์„ ์ถ”๊ฐ€ํ•˜์—ฌ ํ•ญ๋ชฉ์˜ ์ด๊ฐœ์ˆ˜๋ฅผ ๋งˆ์ง€๋ง‰์— ์ถœ๋ ฅํ•ด๋ณด์•˜๋‹ค.

 

(2) remove(at:)

 

ํŠน์ • ์ธ๋ฑ์Šค์—์„œ ํ•˜๋‚˜์˜ ํ•ญ๋ชฉ์„ ์ œ๊ฑฐํ•˜๊ฑฐ๋‚˜ removeAll()์„ ์ด์šฉํ•˜์—ฌ ๋ชจ๋“  ํ•ญ๋ชฉ์„ ์ œ๊ณตํ•œ๋‹ค.

 

์—ฌ๊ธฐ์„œ at:์ดํ›„์— ์ถ”๊ฐ€๋˜๋Š” ๋ณ€์ˆ˜๋Š” ํ•ด๋‹น ์ธ๋ฑ์Šค ํ•ญ๋ชฉ์„ ์ œ์™ธํ•œ ๋‚˜๋จธ์ง€๊ฐ€ ์‚ญ์ œ๋œ๋‹ค. 

 

(3) contains()

 

contains๋Š” ๋ฐฐ์—ด์— ํŠน์ • ํ•ญ๋ชฉ์ด ์žˆ๋Š”์ง€ ํ™•์ธ ํ•  ์ˆ˜์žˆ์œผ๋ฉฐ, ๊ฒฐ๊ณผ ๊ฐ’์€ ๋ถ€์šธํ˜•์œผ๋กœ ์ถœ๋ ฅ๋˜๊ฒŒ๋œ๋‹ค.

 

albums์—๋Š” ์•„์ด์œ ๋Š” ์žˆ์ง€๋งŒ ํ™๊ธธ๋™์€ ์—†๋‹ค.

(4) sorted() 

 

sorted๋Š” ๋ฐฐ์—ด์˜ ํ•ญ๋ชฉ์„ ์˜ค๋ฆ„์ฐจ์ˆœ์œผ๋กœ ์ •๋ ฌํ•˜์—ฌ ์ƒˆ ๋ฐฐ์—ด์„ ๋ฐ˜ํ™˜ ํ•œ๋‹ค. ๋ฌธ์ž์—ด์˜ ๊ฒฝ์šฐ ์•ŒํŒŒ๋ฒณ์ˆœ์œผ๋กœ, ์ˆซ์ž์˜ ๊ฒฝ์šฐ ์ž‘์€๊ฒƒ์—์„œ ํฐ ์ˆซ์ž๋กœ ์ถœ๋ ฅ๋œ๋‹ค. ์ƒˆ ๋ฐฐ์—ด๋กœ ๋ฐ˜ํ™˜ ํ•˜์—ฌ ์ž„์‹œ์ ์œผ๋กœ ์ถœ๋ ฅํ•˜๋Š” ๊ฒƒ์ด์ง€ ์˜์›ํžˆ ์ •๋ ฌ๋œ ์ƒํƒœ๋กœ ์žˆ๋‹ค๋Š” ๊ฒƒ์€ ์•„๋‹ˆ๋‹ค.

์œ„๊ฐ€ ์ •๋ ฌ์„ ํ•œ๊ฒƒ์ด๊ณ  2๋ฒˆ์งธ๋Š” ์›๋ž˜์˜ numbers ์˜ ๊ฐ’์ด๋‹ค.

 

(5) reversed()

 

reversed๋Š” ์ƒˆ๋กœ์šด ๋ฐฐ์—ด์„ ๋ฆฌํ„ดํ•˜๋Š”๊ฒƒ์ด ์•„๋‹ˆ๋ผ ์š”์†Œ๋ฅผ ์—ญ์ˆœ์œผ๋กœ ์—‘์„ธ์Šค ํ•  ์ˆ˜ ์žˆ๋Š” ๋ž˜ํผ ์œ ํ˜•์„ ๋ฐ˜ํ™˜ํ•œ๋‹ค. 

 

reversed๋Š” revese์™€ ๋งŽ์ด ๋น„๊ต๋˜๋Š”๋ฐ ์ด๋Š” ์ดํ›„์— ์ž์„ธํ•˜๊ฒŒ ์•Œ์•„๋ณด๋„๋ก ํ•ด๋ณด์ž!!

 

var array = [1,3,5,2,4,6]
array.reversed() // [6, 4, 2, 5, 3, 1]
print(array) // [1, 3, 5, 2, 4, 6]

 


์˜ค๋Š˜์€ ๋ฐฐ์—ด์— ๋Œ€ํ•ด์„œ ์•Œ์•„๋ณด์•˜๋‹ค. ์–ธ๊ธ‰ ํ•˜์˜€๋˜ ๊ธฐ๋Šฅ ๋ง๊ณ ๋„ ๋” ๋งŽ์€ ๊ธฐ๋Šฅ๋“ค์ด ์žˆ๊ธฐ ๋•Œ๋ฌธ์— ์ดํ›„์— ์ด๊ณณ์ €๊ณณ์—์„œ ๋” ๋งŽ์ด ํ•™์Šต ํ•˜์—ฌ ๋ณด๊ฒ ๋‹ค!

 

learning by repetition

 

https://www.hackingwithswift.com/100/swiftui/3

 

Day 3 – 100 Days of SwiftUI

Follow the 100 Days of SwiftUI and learn to build apps for free.

www.hackingwithswift.com

 

๋ฐ˜์‘ํ˜•

'iOS > Swift ๋ฌธ๋ฒ•' ์นดํ…Œ๊ณ ๋ฆฌ์˜ ๋‹ค๋ฅธ ๊ธ€

Type annotations(ํƒ€์ž… ์ถ”๋ก )  (0) 2022.07.12
๋ฐฐ์—ด(2)  (0) 2022.07.11
Bool & ๋ฌธ์ž์—ด ๋ณด๊ฐ„๋ฒ•  (0) 2022.07.05
๋ณ€์ˆ˜์™€ ์ƒ์ˆ˜(2)  (0) 2022.07.01
๋ณ€์ˆ˜์™€ ์ƒ์ˆ˜  (0) 2022.06.30