Optional을 사용하는 이유?
Optional에서 nil 값이 생기는 경우 언제가 있을지?
예시 1) readline에서 엄청 긴 문자열을 입력하면 nil 값이 생김.
예시 2) Person이란 구조체에서 name, age, job, country 등의 프로퍼티 (타입 안의 변수)를 만든다고 가정. 현재 직업이 없거나 어떤 직업을 갖게 될지 모를 경우 이 경우 옵셔널이 필요함.
if let vs. guard let
guard let과 if let의 차이점 (by dev-lena)
The "else" case of guard
must exit the current scope. Generally that means it must call return
or abort (중단시키다) the program. guard
is used to provide early return without requiring nesting of the rest of the function.
if let
nests its scope, and does not require anything special of it. It can return
or not.
Stackoverflow - Swift: guard let vs if let
타입의 새로운 인스턴스들이 처음으로 사용되기 전에 정확히 초기화될 수 있게하는 것이 주요 목적.
출처: Swift 공식 문서
조카 클래스를 만들어봤습니다 👧
struct의 경우 초기화를 안해줘도 (class와 달리) 에러가 안남.
그 이유는? Memberwise Initializers for Structure Types
(공식 문서에도 이 부분에 관해 나와있음)
출처: 빅 너드 랜치의 스위프트 프로그래밍 제공 by CODA
매개변수란? 옵션들을 만들어내는 것!
새 집에서 각 방들의 페인트를 칠한다고 가정해보자. 4가지 다른 색깔이 있다면 4가지 다른 함수가 필요함.
e.g. 흰색/검정/초록/노랑색 으로 칠하는 각각의 함수
→ 각기 다른 색깔을 칠하는 다른 함수들을 정의하는 대신에, 딱! 내가 원하는 색깔만 지정할 수 있게 매개변수를 사용할 수 있음
여기서 parameter란 위의 함수에 들어가는 입력 값임.
매개변수는 특정 type을 가지는데 여기서는 오른쪽의 컬러가 그 경우에 해당함.
함수를 부를때, argument를 이용하여 함수를 어떤 식으로 실행할지 customize 할 수 있음.
매개변수는 여러개를 가지는 것도 가능함
paintroom(color: green, layers: 3)
func move(count: Int) {
for i in 1...count {
moveForward()
}
}
move라는 이 함수는 Int 타입의 count라는 매개변수를 가짐.
여기서 이 count라는 매개변수는 for 반복문이 몇 번 돌아갈지를 구체적으로 정해줌.
move(count: 3)
move (count: ) 함수를 호출할 때, argument로 에 몇 번 직진할지 전달해줌.
(argument, parameter, 인자 다 같은 말임)
출처: 플레이그라운드 코딩 배우기 2
Cozy 모둠원끼리 같이 공부하는 방법 조언 🙂