본문 바로가기

optional5

[Swift] 옵셔널 해제 간단 정리 옵셔널 해제 2가지 1. 명시적 해제 강제 해제 비강제 해제 (옵셔널 바인딩) 2. 묵시적 해제 컴파일러에 의한 자동 해제 옵셔널의 묵시적 해제 1-1) 강제 해제 - 변수 뒤에 ! - 만약 !로 옵셔널 해제한 변수에 값이 없을 경우 crash 발생함 - 최대한 쓰지말것 1-2) 옵셔널 바인딩 - if ,guard 문으로 안전하게 제거 할 수 있음 -메커니즘- =을 기준으로 우측 (Optional Expression)을 평가한뒤 값이 리턴이 되면 좌측 numbers (임시상수)에 저장이 됨 차이점은 if문은 옵셔널을 제거한 상수나 변수를 if문블록 안에서만 사용가능하지만, guard문은 함수내부에서도 사용가능 그래서 guard를 주로 사용함 2-1)컴파일러에 의한 자동 해제 - 옵셔널값은 비교연산자를 통.. 2022. 9. 17.
[Swift] Optionals (옵셔널) 우리는 대체로 변수와 상수의 값을 선언할때 초기화를 해준다. 상수 a에 값을 1로 지정하면 Swift는 똑똑해서 형식추론을 통해서 a는 Int자료형으로 유추한다. 유추하지 않고 우리가 Type Annotation으로 지정할 수도 있음 상수 a에 값이 없음을 나타내고 싶다고 가정하자. 이때 이렇게 a상수에 값을 출력해보면 뭐가 나올까?? 당근 값을 초기화해주지 않아서 에러가 나옴 Swift에서는 없음을 나타내는 키워드로 nil을 사용한다. 하지만 nil이라는 키워드를 사용하기 위해서는 타입을 옵셔널 타입으로 바꿔야 사용가능하다. nil은 아무것도 없음을 뜻하는데 타입을 추론할 단서가 없어 타입어노테이션 방식으로 지정해 주어야 한다. 옵셔널 타입을 사용하는 방법은 다음과 같다. TypeName? //이름뒤에.. 2022. 8. 1.
[Swift] readLine() 코테를 풀다 처음보는 readLine()을 보고 당황했다. 평소에 print()만 알고 있었는데 생각해보니 출력만 있을 수 없지 않나... 검색을 해보니 readLine()은 한줄을 읽어 들이는 함수이다 Swift 터미널에서 엔터를 누르면 파일의 끝으로 인식하고 엔터를 누르기 전에 입력을 Optional String형으로 리턴한다고 한다. 참고 - 플레이그라운드에서는 확인해볼 수 없다. 프로젝트를 만들때 macOS -> command Line Tool을 이용해야 함 궁긍해서 Run을 해보았다. 1234를 입력하니 Optional(String)이 나왔다. 한단어씩 인식하는 것 같다. `특수문자는 사용하면 안되는 걸까..? 공백에 민감한 녀석인가 보다 영어는 정삭적으로 Optional형태로 출력이 된다. 강.. 2022. 6. 27.
옵셔널(Optional) 🔥옵셔널🔥 스위프트가 잠재적 오류를 다루는 방법 옵셔널은 스위프트에서 도입된 새로운 개념으로서 언어 차원에서 프로그램의 안전성을 높이기 위해 사용하는 개념 옵셔널을 한문장으로 간략히 정의하자면 nil을 사용할 수 있는 타입과 없는 타입을 구분하고, 사용할 수 있는 타입을 가리켜 옵셔널 타입(Optional type)이라고 부른다고 할 수 있음 nil 값이 없음을 나타내는 특수한 값 정수형0과 문자열""과는 다름 순수하게 아무 값도 없다는 것을 의미함 이 때문에 nil은 종종 실제 값으로는 처리할 수 없는 , 무엇인가 문제가 발생했을 때 이를 의미하기 위해 사용함 * objective-c에서는 빈 메모리 주소를 가리키는 값이 였음 예를 들어서 딕셔너리 변수명 뒤에 대괄호와 함께 키값을 주어야 하는데 오타로.. 2022. 2. 3.