Swift

[ SWIFT ] ์—ฐ์‚ฐ์ž - ์‚ฐ์ˆ  ์—ฐ์‚ฐ์ž, ๋น„๊ต ์—ฐ์‚ฐ์ž, ์‚ผํ•ญ ์กฐ๊ฑด ์—ฐ์‚ฐ์ž, ๋ฒ”์œ„ ์—ฐ์‚ฐ์ž, nil ๋ณ‘ํ•ฉ ์—ฐ์‚ฐ์ž, ๋ถ€ํ˜ธ ๋ณ€๊ฒฝ ์—ฐ์‚ฐ์ž

Forest Yun 2021. 8. 13. 20:57
728x90

๊ณต๋ถ€ํ•œ ๋‚ด์šฉ์„ ์ •๋ฆฌํ•œ ๊ธ€์ž…๋‹ˆ๋‹ค.

 

 

์—ฐ์‚ฐ์ž

  1. ์‚ฐ์ˆ  ์—ฐ์‚ฐ์ž
  2. ๋น„๊ต ์—ฐ์‚ฐ์ž
  3. ์‚ผํ•ญ ์กฐ๊ฑด ์—ฐ์‚ฐ์ž
  4. ๋ฒ”์œ„ ์—ฐ์‚ฐ์ž
  5. nil ๋ณ‘ํ•ฉ ์—ฐ์‚ฐ์ž
  6. ๋ถ€ํ˜ธ ๋ณ€๊ฒฝ ์—ฐ์‚ฐ์ž

 

 

 

 

 

 

 

 

๋“ค์–ด๊ฐ€๊ธฐ ์ „,

์Šค์œ„ํ”„ํŠธ๋Š” ๋„์–ด์“ฐ๊ธฐ๋„ ์ค‘์š”ํ•œ ๋ฌธ๋ฒ• ์œผ๋กœ, ์—ฐ์‚ฐ์ž๋ฅผ ๊ณต๋ถ€ํ•  ๋•Œ ๊ณต๋ฐฑ์˜ ์œ„์น˜๋ฅผ ํ™•์ธํ•˜๋ฉฐ ๊ณต๋ถ€ํ•ด์•ผ ํ•œ๋‹ค.

 

 

 

 

 


์‚ฐ์ˆ  ์—ฐ์‚ฐ์ž

์Šค์œ„ํ”„ํŠธ๋Š” ๋ฐ์ดํ„ฐ ํƒ€์ž…์— ๊ต‰์žฅํžˆ ์—„๊ฒฉํ•˜๋ฏ€๋กœ ์„œ๋กœ ๋‹ค๋ฅธ ์ž๋ฃŒํ˜•๋ผ๋ฆฌ์˜ ์—ฐ์‚ฐ์„ ์—„๊ฒฉํžˆ ์ œํ•œํ•œ๋‹ค.

์—ฐ์‚ฐ์ž ์˜ˆ์‹œ
+ + 3 = 8
- - 3 = 2
* 5 * 3 = 15
/ ๋ชซ์„ ๋ฐ˜ํ™˜ํ•œ๋‹ค.
5 / 3 = 1
% ๋‚˜๋จธ์ง€๋ฅผ ๋ฐ˜ํ™˜ํ•œ๋‹ค.
์ •์ˆ˜์™€ ๋‹ค๋ฅด๊ฒŒ ๋ถ€๋™์†Œ์ˆ˜์ ์€ '%' ์—ฐ์‚ฐ์ž๊ฐ€ ์•„๋‹ˆ๋ผ 'truncatingRemainder' ๋ฅผ ์‚ฌ์šฉํ•œ๋‹ค.
5 % 3 = 2
let number: Double = 5.0
var result: Double = number.truncatingRemainder(dividingBy: 1.5) //๋ถ€๋™์†Œ์ˆ˜์ ์˜ ๋‚˜๋จธ์ง€๋ฅผ ๋ฐ˜ํ™˜
print(result)

 

 

 

 

 


๋น„๊ต ์—ฐ์‚ฐ์ž

๊ฐ’ ๋น„๊ต ํ›„ Bool ๊ฐ’์„ ๋ฐ˜ํ™˜ํ•œ๋‹ค.

์—ฐ์‚ฐ์ž ์„ค๋ช…
A == B A์™€ B๊ฐ€ ๊ฐ™์€๊ฐ€?
A !=B  A์™€ B๊ฐ€ ๊ฐ™์ง€ ์•Š์€๊ฐ€?
A >= B A๊ฐ€ B๋ณด๋‹ค ํฌ๊ฑฐ๋‚˜ ๊ฐ™์€๊ฐ€?
A <= B A๊ฐ€ B๋ณด๋‹ค ์ž‘๊ฑฐ๋‚˜ ๊ฐ™์€๊ฐ€?
A > B A๊ฐ€ B๋ณด๋‹ค ํฐ๊ฐ€?
A < B A๊ฐ€ B๋ณด๋‹ค ์ž‘์€๊ฐ€?
A === B A์™€ B๊ฐ€ ์ฐธ์กฐ(๋ ˆํผ๋Ÿฐ์Šค) ํƒ€์ž…์ผ ๋•Œ, A์™€ B๊ฐ€ ๊ฐ™์€ ์ธ์Šคํ„ด์Šค๋ฅผ ๊ฐ€๋ฆฌํ‚ค๋Š”๊ฐ€? (์ฐธ์กฐ๊ฐ€ ๊ฐ™์€๊ฐ€)
A !== B A์™€ B๊ฐ€ ์ฐธ์กฐ(๋ ˆํผ๋Ÿฐ์Šค) ํƒ€์ž…์ผ ๋•Œ, A์™€ B๊ฐ€ ์„œ๋กœ ๋‹ค๋ฅธ ์ธ์Šคํ„ด์Šค๋ฅผ ๊ฐ€๋ฆฌํ‚ค๋Š”๊ฐ€? (์ฐธ์กฐ๊ฐ€ ๊ฐ™์ง€ ์•Š์€๊ฐ€)
A ~= B A์™€ B์˜ ํŒจํ„ด์ด ๋งค์น˜๋˜๋Š”๊ฐ€?

 

๊ฐ’ ๋น„๊ต

if๋ฌธ ๋˜๋Š” ๋ฐ˜๋ณต๋ฌธ์˜ ์กฐ๊ฑด์‹์— ์‚ฌ์šฉํ•˜์—ฌ๋„ ๋˜๊ณ , ํ•œ ์ค„๋กœ ๊ฐ’์„ ๋น„๊ตํ•˜์—ฌ ๊ฒฐ๊ณผ๋ฅผ ์•Œ์•„๋‚ผ ์ˆ˜๋„ ์žˆ๋‹ค.

let result: Bool = "๋ฐ”๋‹ค" == "ํ˜ธ์ˆ˜" //false

 

 

์ฐธ์กฐ ํƒ€์ž… ๋น„๊ต

let referenceA: ํด๋ž˜์ŠคA  = ํด๋ž˜์ŠคA()
let referenceB: ํด๋ž˜์ŠคA  = ํด๋ž˜์ŠคA()
let referenceC: ํด๋ž˜์ŠคA  = referenceA
 
let isSameReferenceAB: Bool = referenceA === referenceB //false
let isSameReferenceAC: Bool = referenceA === referenceC //true

 

 

 

 

 

 


์‚ผํ•ญ ์กฐ๊ฑด ์—ฐ์‚ฐ์ž

 

์กฐ๊ฑด? A : B  

→ ์กฐ๊ฑด์ด ์ง„์‹ค์ด๋ฉด A๋ฅผ, ๊ฑฐ์ง“์ด๋ฉด B๋ฅผ ๋ฐ˜ํ™˜ํ•œ๋‹ค.

 

ํ”ผ์—ฐ์‚ฐ์ž๊ฐ€ ์„ธ ๊ฐœ์ธ ์‚ผํ•ญ ์กฐ๊ฑด ์—ฐ์‚ฐ์ž

์กฐ๊ฑด ์•ˆ์— ๋˜ ๋‹ค๋ฅธ ์‚ผํ•ญ ์—ฐ์‚ฐ์ž๋ฅผ ๋„ฃ์„ ์ˆ˜๋„ ์žˆ๋‹ค. 

let num1: Int = 1
let num2: Int = 10
var minValue: Int = 0

minValue = num1 > num2 ? num2 : num1
//minValue์˜ ๊ฐ’์€ num1

 

 

 

 

 

 


๋ฒ”์œ„ ์—ฐ์‚ฐ์ž

ํ์‡„ ๋ฒ”์œ„ ์—ฐ์‚ฐ์ž A...B A๋ถ€ํ„ฐ B๊นŒ์ง€์˜ ์ˆ˜ ๋ฒ”์œ„
์˜ˆ) 1..3๋Š” 1, 2, 3 ๋ฅผ ์˜๋ฏธํ•œ๋‹ค.

 

for i in 1...3 {
	print(i)
}
//1
//2
//3

 

 

๋ฐ˜ํ์‡„ ๋ฒ”์œ„ ์—ฐ์‚ฐ์ž A..<B A๋ถ€ํ„ฐ B ๋ฏธ๋งŒ ๊นŒ์ง€์˜ ์ˆ˜ ๋ฒ”์œ„ 
์˜ˆ) 1...<3 ๋Š” 1, 2 ๋ฅผ ์˜๋ฏธํ•œ๋‹ค.
for i in 1..<3 {
	print(i)
}
//1
//2

 

 

 

๋‹จ๋ฐ˜ํ–ฅ ๋ฒ”์œ„ ์—ฐ์‚ฐ์ž A... A ์ด์ƒ์˜ ์ˆ˜
์˜ˆ) ๋ฐฐ์—ด์˜ ๊ฒฝ์šฐ, ์ธ๋ฑ์Šค A๋ถ€ํ„ฐ ๋งˆ์ง€๋ง‰ ์ธ๋ฑ์Šค๊นŒ์ง€๋กœ ํ™œ์šฉ ๊ฐ€๋Šฅ
...A A ์ดํ•˜์˜ ์ˆ˜
์˜ˆ) ๋ฐฐ์—ด์˜ ๊ฒฝ์šฐ, ์ธ๋ฑ์Šค 0๋ถ€ํ„ฐ A๊นŒ์ง€๋กœ ํ™œ์šฉ ๊ฐ€๋Šฅ
..<A A ๋ฏธ๋งŒ์˜ ์ˆ˜
์˜ˆ) ๋ฐฐ์—ด์˜ ๊ฒฝ์šฐ, ์ธ๋ฑ์Šค 0๋ถ€ํ„ฐ A ๋ฏธ๋งŒ๊นŒ์ง€๋กœ ํ™œ์šฉ ๊ฐ€๋Šฅ

A...

let array: Array<String> = ["A", "B", "C"]

for value in arry[1...] { // ์ธ๋ฑ์Šค 1 ~ 2
	print(value)
}
//B
//C

 

...A

let array: Array<String> = ["A", "B", "C"]

for value in arry[...1] { // ์ธ๋ฑ์Šค 0 ~ 1
	print(value)
}
//A
//B

 

 

..<A

let array: Array<String> = ["A", "B", "C"]

for value in arry[..<1] { // ์ธ๋ฑ์Šค 0
	print(value)
}
//A

 

 

 

 

 

 

 


nil ๋ณ‘ํ•ฉ ์—ฐ์‚ฐ์ž

A ?? B

→ A๊ฐ€ nil์ด ์•„๋‹ˆ๋ฉด A๋ฅผ, A๊ฐ€ nil์ด๋ฉด B๋ฅผ ๋ฐ˜ํ™˜

nil ๋ณ‘ํ•ฉ ์—ฐ์‚ฐ์ž๋Š” ์˜ต์…”๋„์„ ์‚ฌ์šฉํ•  ๋•Œ ์•„์ฃผ ์œ ์šฉํ•œ ์—ฐ์‚ฐ์ž์ด๋‹ค. ์‚ผํ•ญ ์—ฐ์‚ฐ์ž๋ฅผ ์ด์šฉํ•˜์—ฌ nil ์—ฌ๋ถ€์— ๋”ฐ๋ฅธ ์ฒ˜๋ฆฌ๋ฅผ ํ•  ์ˆ˜๋„ ์žˆ์ง€๋งŒ, nil ๋ณ‘ํ•ฉ ์—ฐ์‚ฐ์ž๋ฅผ ์‚ฌ์šฉํ•˜๋Š” ๊ฒƒ์ด ํ›จ์”ฌ ์•ˆ์ „ํ•˜๊ณ  ๊ฐ„๋‹จํ•œ ๋ฐฉ๋ฒ•์ด๋‹ค.

 

 

 

 

 

 


๋ถ€ํ˜ธ ๋ณ€๊ฒฝ ์—ฐ์‚ฐ์ž

-A

→ A ์ˆ˜์˜ ๋ถ€ํ˜ธ๋ฅผ ๋ณ€๊ฒฝํ•œ๋‹ค.

 

 

 

 

 

 




 

 

 

 

 

 

 

https://m.blog.naver.com/PostView.naver?isHttpsRedirect=true&blogId=badwin&logNo=221177227872
๋ฒ”์œ„ ์—ฐ์‚ฐ์ž
์•ผ๊ณฐ - ์Šค์œ„ํ”„ํŠธ ํ”„๋กœ๊ทธ๋ž˜๋ฐ 5ํŒ (SWIFT5)
728x90