목록분류 전체보기 (388)
나의 발자취
옵셔널 추출 네가지 1. 강제추출(Forced Unwrapping) (!) 값이 있다는 것이 확실할 때 사용 var str: String? = "안녕하세요" print(str!) nil일 때 forced unwrapping을 하면 에러가 난다. 2. if문으로 nil 아닌지 확인 후 강제로 벗기기 if str != nil { print(str!) } 3. 옵셔널 바인딩 (if let 바인딩) 만약 바인딩이 된다면, 특정 작업을 하겠다는 의미이다. if let s = str { // str에 있는 값이 s라는 상수에 바껴서 담긴다면(nil값이 아니라면). 만약 nil이라면 담기지 않는다! print(s) } str: Optional String s: String +실제 앱을 만들 때 guard let 바인..
우리가 타입을 선언하고 값이 없는 공간에 접근을 하면 에러가 발생한다. 예를 들어, var yourName: String // 선언 //yourName = "홍길동" // 값을 저장하지 않는다면.. print(yourName) // (만약 저장과정이 없다면) 메모리에 저장된 값이 없는데 접근 ===> 🔸"에러" 앱이 종료되게 된다. 그래서 물음표를 붙여줘서 에러가 나지 않도록 임시적인 타입을 담아두게 된다. -> 이것이 옵셔널 var yourName: String? // 옵셔널 print(yourName) // nil nil : 값이 없음을 표현하는 키워드. 다른 언어에서는 null이 있다. 이는 값이 없음을 나타낸다. 그러나 스위프트에서는 실제 값이 없는 것이 아니다. 값이 없을 수 있다는 것을 알려주..
print(_ items: Any..., separator: String = " ", terminator: String = "\n") _: 와일드카드 패턴; argument label을 사용하지 않음. separator: 글자를 분리하는 기본값 terminator: 글자를 끝내는 기본값
guard(감시하다) : 조건이 맞는지 감시한다. 사용 이유 if문을 사용할 때, 조건이 여러개가 된다면 들여쓰기가 많아져서 가독성이 떨어진다는 단점이 있다. 또한 여러개의 옵셔널 타입을 안전하게 언래핑할 수 있다. 코드의 영역이 변경되지 않고, guard문에서 선언된 변수를 아래문장에서 사용 가능하기 때문이다. 불만족하는 조건을 사전에 걸러내는 조건문 먼저 감시를 해서 조건을 만족하지 않으면 else문이 실행이 되며 종료시킨다. (early exit) (종료 조건; 함수 내애서는 return / true. 반복문에서는 break / continue. ) 조건을 만족하면 else 문 밑의 코드들을 실행한다. else문이 먼저 등장하는 if문이라고 생각하면 쉽다. 형태 guard password.count..
함수 내의 파라미터는 기본적으로 값타입이고(복사되어서 전달) 임시상수이기 때문에 변경이 불가하다. 이때 inout 키워드를 사용하면 참조로 전달하게 된다. 파라미터의 복사본이 전달되는 것이 아니라 원본의 주소가 전달된다. (내부적으로 copy-in copy-out 매커니즘이 실행된다.) 변수를 직접 넣었다가 뺀다고 생각하면 쉽다. 정의 하는 방법은 함수 파라미터를 할 때 파라미터 타입 앞에 inout 키워드를 추가한다. func swapNumbers(a: inout Int, b: inout Int) { ... } 실행 방법 swapNumbers(a: &num1, b: &num2) 위에서 inout 키워드로 선언하면 아래에서 호출할 때 자동으로 되지만, 변수를 전달할 때 & 기호를 꼭 붙어야 한다.(원본이..

조건문 for item in stride(from:to:by:) let _ = (1…10).reversed() for item in 범위 {} repeat {condition} while 일단 한번은 실행하고 나서, 조건을 판단해서 실행. (do...while 문과 비슷) terminator 파라미터 print(“df”, terminator: "") 함수 argument label addFincti(_ firstNimL Int, dfsfd){} 가변파라미터 variadic parameters func arthmaticAverage(_ numbers: Double…)-> Double {} Guard 문 1) 가독성을 높임/if문의 불편함을 해소(조건을 만족해야 다음 문장, 조건 불만족 걸러내기) 2) 여러..
보호되어 있는 글입니다.
보호되어 있는 글입니다.