for 문부터 시작
var a = [1,2,3,4,5]
for value in a {
print(value)
}
for (index, value) in a.enumerated() {
print("\(index) = \(value)")
}
//where 절 가능
for value in a where value > 3 {
print(value)
}
var b = 0
while b < 10 {
b += 1
}
//do while 처럼 먼저 실행 코드
repeat {
b += 1
} while a < 10
guard 배우기
var a: Int? = 0
var b: Int? = 5
/*
func foo(value: Int?) {
if let value = value {
print(value)
} else {
print("empty")
return
}
}
*/
//guard 사용 동일 코드
func foo(value: Int?) {
guard let value = value else {
print("empty")
return
}
print(value)
}
foo(value: nil)
foo(value: 1)
클래스와 구조체
구조체는 값을 복사해서 사용하니 특별한 경우가 아니면 구조체를 쓰는게 안정적 (클래스는 참조라서 값이 바뀔 수 있음)
struct Struct1 {
var value: Int = 0
func display() {
print(value)
}
}
class ClassA {
var value: Int = 0
func display() {
print(value)
}
}
//클래스는 상속 가능
class ClassB: ClassA {
//소멸자 제공
deinit {
//메모리에서 해제 되기전에 마지막 작업 가능
}
}
//둘은 거의 동일
var struct1 = Struct1()
var class1 = ClassA()
struct1.value
class1.value
struct1.display()
class1.display()
값타입과 참조 타입의 구분은 이 내용이 도움됨
https://goods99.tistory.com/176
값타입과 참조타입 차이점
swift에 자료구조들은 두가지 타입으로 존재한다 값 타입 (Value Type) 참조 타입(Reference Type) - 구조체 (Struct) - 열거체 (Enum) - 튜플 (Tuple) - 클래스 (Class) - 클로저 (Closure) 값 타입 대표 '구조체' 와 참
goods99.tistory.com
enum
특정 객체가 타입이 여러개 있을 때 (ex: 게임의 난이도가 여러개 일 때)
//enum 내에서도 값을 설정 가능
enum GameLevel1 {
case easy
case medium
case hard(level: Int)
}
let level: GameLevel1 = .easy
//let levels: [GameLevel1] = [.easy, .medium, .hard]
let level2 = GameLevel1.hard(level: 100)
//extension도 사용 가능
extension GameLevel1 {
func display() {
switch self {
case .easy:
print("쉬움")
case .medium:
print("중간")
case let .hard(level):
print("\(level)어려움")
}
}
}
GameLevel1.easy.display()
GameLevel1.hard(level: 500).display()
Swift : 기초문법 [스위치 - Switch(break/fallthrough)]
목차 Switch switch 구문도 소괄호(())를 생략할 수 있습니다. 단, break 키워드 사용은 선택 사항입니다. 즉, case 내부의 코드를 모두 실행하면 break 없이도 switch 구문이 종료된다는 의미입니다. 이것은
seons-dev.tistory.com
접근 제어자
https://hongssup.tistory.com/334
[Swift] Access Control 접근 제어자 종류 및 사용
접근 제어자 사용하는 이유 - 외부로부터 데이터를 보호하기 위해서 - 외부에는 불필요한, 내부적으로만 사용되는 부분을 감추기 위해서 더보기 * 참고 : 은닉화(Hiding)란? - 객체지향 개발에서 외
hongssup.tistory.com
'Apple Developer > Swift' 카테고리의 다른 글
GitHub에 배포한 스위프트 패키지 가져오기 (0) | 2024.04.01 |
---|---|
xcode 에서 test 버튼 (0) | 2024.04.01 |
xcode 코드 접기 (Code folding ribbon) (0) | 2024.03.29 |
Swift 어려운 내용 (0) | 2023.08.22 |
Swift 초보 공부 잼나여! (0) | 2023.08.21 |