/Swift
오늘은 여러 가지 Operators(연산자)에 대해 공부해 보자.
import Foundation
let myAge = 22
let yourAge = 20
if myAge > yourAge {
"I'm older than you."
} else if myAge < yourAge {
"I'm younger than you."
} else {
"Oh hey, we are the same age."
}
let myMothersAge = myAge + 30
let doubleMyAge = myAge * 2
부등호(<, >), 연산기호(+, -, /, *)등이 operator이다. 위에서 언급한 예시 코드에 등장하는 연산자의 경우, 두 개의 value가 있어야 작동할 수 있는 binary infix operator라고 할 수 있다.
Swift에는 세 가지 각기 다른 타입의 operator가 있다. unary prefix, unary postfix, binary infix가 바로 그것인데, unary의 경우 works with only one value, 즉 한 개의 value만으로 작동하는 연산자인 셈이다.
import Foundation
let foo = !true
//unary prefix
let name = Optional("Vandad")
let unaryPostfix = name!
//unary postfix
unary prefix와 unary postfix의 예시 코드를 작성해 보았다.
위의 예시 코드에서 Optional은 value가 있을 수도, 없을 수도 있게 하는 말 그대로 옵셔널이다. 바로 아래에서 name! 캐스팅을 통해 name안의 value를 강제로 꺼내준 것을 볼 수 있다. 해당 코드의 type을 확인해 보면
type(of: name)
//Optional<String>.Type
type(of: unaryPostfix)
//String.Type
name과 unaryPostfix의 type이 서로 다른 것을 볼 수 있다.
import Foundation
let age = 30
let message: String
if age >= 18 {
message = "You are an adult"
} else {
message = "You are not an adult yet"
}
age를 확인하여, 확인한 값에 따라 출력하는 message의 내용이 달라지도록 하는 코드는 위와 같이 짤 수 있다. 하지만 위의 코드처럼 if와 if else를 반복하는 코드 대신, tenary operator를 활용하여 다른 방법으로 동일한 기능을 하는 코드를 작성할 수도 있다.
let message = CONDITION
? VALUE IF CONDITION IS MET
: VALUE IF CONDITION IS NOT MET
이렇게 조건을 만족할 경우의 value, 조건을 만족하지 못할 경우의 value를 나누어서 써줄 수 있다. 위의 예시에 tenary operator를 적용해 보면 아래와 같다.
import Foundation
let message = age >= 18 ? "You are an adult" : "You are a kid"
하지만 이러한 tenary operator는 개발자들 사이에선 호불호가 많이 갈린다고 한다. 대부분의 경우 좋아하진 않는다고...(왜지) 아무튼간에 사용에 주의하는 것이 좋다고 함
내일은 아마 if/else문을 짚어볼 듯
'학습 기록 > swift' 카테고리의 다른 글
function (0) | 2024.11.22 |
---|---|
if and else (0) | 2024.11.21 |
NSArray, NSMutableArray (0) | 2024.11.19 |
Hello World + Variables (0) | 2024.11.18 |
Xcode 설치하기 (0) | 2024.11.17 |