728x90
자주 사용되는 연산자 순위
- 대입 연산자 (=)
대입 연산자는 변수에 값을 할당하는 데 사용되며, 거의 모든 프로그램에서 빈번하게 사용됩니다[ - *산술 연산자 (+, -, , /)
기본적인 수학 연산을 수행하는 데 사용되며, 프로그램에서 매우 자주 사용됩니다[ - 증감 연산자 (++, --)
루프나 카운터에서 자주 사용되어 높은 사용 빈도를 보입니다[ - 비교 연산자 (==, !=, <, >, <=, >=)
조건문이나 루프의 조건에서 자주 사용되어 높은 순위를 차지합니다[ - 논리 연산자 (&&, ||, !)
조건문에서 복합 조건을 만들 때 자주 사용됩니다[ - 비트 연산자 (&, |, ^, <<, >>)
특정 분야(예: 시스템 프로그래밍, 그래픽 프로그래밍)에서 자주 사용됩니다[ - 조건 연산자 (? :)
간단한 조건문을 한 줄로 표현할 때 사용되며, 코드의 간결성을 위해 자주 활용됩니다[ - 멤버 접근 연산자 (., ->)
객체 지향 프로그래밍에서 객체의 멤버에 접근할 때 매우 빈번하게 사용됩니다
Swift에 없는 연산자
x++, x-- // x+=1, x-=1
Swift 초창기에 있었지만 없어짐
==연산자
값이 같은가?
===연산자
동일한 메모리 주소인가?
===연산자를 사용하는 언어
javascript, php, ruby 등
클래스: 내가 만드는 자료형 int, double 등 자료형은 이미 만들어진 자료형
객체: 클래스로 부터 만들어진 실체를 객체
인스턴스: 메모리에 올라온 객체를 인스턴스
다양한 언어의 객체 생성 방법
# Person 클래스가 여기에 정의되어 있다고 가정합니다.
person = Person("김철수", 30)
person.introduce()
<?php
// Person 클래스가 여기에 정의되어 있다고 가정합니다.
$person = new Person("김철수", 30);
$person->introduce();
?>
#include <iostream>
// Person 클래스가 여기에 정의되어 있다고 가정합니다.
int main() {
Person person("김철수", 30);
person.introduce();
return 0;
}
Swift for문
for i in 0..<10 {
print(i)
}
c스타일식 for문은 없어짐
for var i = 0; i < 10; i+=1 { // for i in 0..<10 로 수정해야 함
print(i)
}
let names = ["A", "B", "C", "D"]
for name in names[1...]{
print(name)
}
인덱스 1부터 끝까지
let names = ["A", "B", "C", "D"]
for name in names[...1]{
print(name)
}
처음부터 인덱스 1까지
var x = 10
if x > 5 {print("5보다 큽니다")}
조건문이 한줄이라도 중괄호를 써야함
Swift에서 많이 사용하는 제어문
- if-else 문
조건에 따라 코드 블록을 실행하는 기본적인 조건문입니다. - switch 문
여러 가능한 케이스에 대해 코드를 실행하는 데 사용됩니다. Swift의 switch문은 매우 강력하고 유연합니다. - for-in 루프
배열, 범위, 문자열 등을 순회할 때 사용됩니다. - while 루프
조건이 참인 동안 코드 블록을 반복 실행합니다. - repeat-while 루프
다른 언어의 do-while 루프와 유사하며, 코드 블록을 최소한 한 번 실행한 후 조건을 검사합니다. - guard 문
조건을 먼저 검사하고, 조건이 거짓일 때 빠르게 함수나 메서드를 종료할 수 있게 해줍니다. - break 문
루프나 switch 문에서 즉시 실행을 중단하고 빠져나올 때 사용합니다. - continue 문
현재의 루프 반복을 중단하고 다음 반복으로 넘어갈 때 사용합니다. - fallthrough 문
switch 문에서 다음 case로 실행을 계속할 때 사용합니다. - defer 문
현재 코드 블록이 종료될 때 실행될 코드를 지정합니다.
Optional
var x : Int = 10
print(x)
var y : Int? = 20
print(y!)
변수 선언 할 때 ? 추가
사용 할 때는 ! 사용하여 사용가능
var x : Int
x = 10
print(x)
var y : Int?
print(y) //nil: 값이 없음
var y : Int?
print(y!) //nil: 값이 없음
crash 발생
var y : Int? = 20
y = y! + 1
print(y!)
Optional 변수는 ! 사용하여 변수를 풀어서 연산해야함
Optional 바인딩
1
var x : Int?
x = 10
if x != nil {
print(x!)
}
else {
print("nil")
}
2
var x : Int?
if let x = x {
print(x)
}
3
var x : Int?
if let x {
print(x)
}
여러 옵셔널 값 동시에 바인딩
var x : Int?
var y : Int?
x = 10
y = 20
if let x, let y {
print(x, y)
}
자동으로 푸는 Optional
var x : Int?
var y : Int!
var z : Int = 1
x = 10
y = 20
print(x, y, z)
z = x!
print(z)
z = y // ! 생략 가능
print(z)
if let x, let y {
print(x, y)
}
var x : Int? // = 10
var y : Int = 0
y = x ?? 1 // nil 일 경우 오른쪽 값을 사용
print(x, y)
Swift Optional 푸는 법
- 옵셔널 바인딩 (if let / guard let)
if let value = optionalValue {
// value를 사용
} - 옵셔널 체이닝 (?.)
let result = optionalValue?.property - nil 병합 연산자 (??)
let value = optionalValue ?? defaultValue - 강제 언래핑 (!)
let value = optionalValue! - 암시적 언래핑 옵셔널 (Type!)
var assumedString: String! - switch 문을 이용한 옵셔널 패턴 매칭
switch optionalValue {
case .some(let value):
print("값이 있습니다: $$value)")
case .none:
print("값이 없습니다")
} - map, flatMap, compactMap 함수
let mappedArray = optionalArray?.map { $0 * 2 } - guard 문
guard let value = optionalValue else {
return
}
// value를 사용