4월 15일 (금)

apwierk·2022년 4월 16일
0

TIL

목록 보기
4/33

TIL (Today I Learned)

4월 15일 (금)

학습 내용

함수 naming: 동사로 짓는다.
변수 naming: 명사로 짓는다.

  • 코드는 계속 변해야 되는 것 (고객의 요구사항은 변하고 그것에 대응해야된다.)
    -> 코드는 유연해야 된다. 수정하기 쉬워야한다.
    -> 기능별로 나누어서 코딩한다.

  • 등이연산자
    비교연산자 중 등이연산자 '=='는 비교하는 두 값을 옵셔널 값으로 변환한 후 계산한다.

== (lhs: String?, rhs: String?) -> Bool {
	return	lhs == rhs
}
  • 옵셔널

옵셔널 추출 방법

    1. 강제추출 방식
      - 말 그대로 강제적으로 optional unwrapping
      값의 존재유무는 신경쓰지 않고 값을 추출한다
      따라서 nil 상태인 경우 error 발생
      추출하고자 하는 값 오른쪽에 ! 붙여주면 된다
    1. 옵셔널 체이닝
      - 연쇄적으로 옵셔널 값을 추출한다는 의미
      반환값은 옵셔널의 타입
      .을 이용해 내부 프로퍼티나 메서드에 연속적으로 접근할때,
      옵셔널 값이 하나라도 있으면 체이닝
      ex)person.contacts?.address
      person?.contacts?.address
      방식은 옵셔널의 표현식의 멤버에 접근할때 표현식이 nil일 가능성이 존재하니 ?를 써준다
      옵셔널의 체이닝의 결과값의 타입은 마지막 표현식의 옵셔널 타입
      ex.) let email = ilim?.contacts.email 이라는 코드가 있다면
      optional(email.type)이 상수에 저장됨
      옵셔널 체이닝의 반환값은 무조건 옵셔널 타입
      옵셔널 체이닝의 마지막 표현식은 그 타입에 관계없이 ? 생략
      만약 추가적으로 속성에 접근한다면 마지막 표현식이 아니므로 그때는 ?를 써줘야 한다
      옵셔널 체이닝 중간에 nil이 있으면 그 다음 표현식은 접근 하지 않고 바로 nil 리턴
    1. 옵셔널 바인딩
    • 조건문과 변수, 상수를 이용하여 옵셔널 값을 상수에 할당하는 방식이다.
    • 무조건 조건문을 이용해야한다.
let optionalBindingTest: Int? = 2
if let bindingTest = optionalBindingTest {
    print(bindingTest)
} else {
    print("값이 없어요")
} // 2
    1. 묵시적 해제
    • 타입 선언시 ? 대신 !를 사용해 선언하면 컴파일러가 옵셔널을 해제한다.
    • 실제 사용시 nil이 대입 될 가능성이 없는 변수에만 사용한다.
var value: Int! = Int("123")
print(value) // Optional(123)
print(value + 1) // 124

문제점 / 고민한 점

Substring -> String으로 변환하기

profile
iOS 꿈나무 개발자

0개의 댓글