밍비
프로그램의 편린
밍비
전체 방문자
오늘
어제
  • 분류 전체보기 (64)
    • Spring (2)
    • TIL (23)
    • 프로그래머스 (12)
    • Udemy (16)
    • Typescript (2)
    • MERN (1)
    • AWS (7)

블로그 메뉴

  • 홈
  • 태그
  • 방명록

공지사항

인기 글

태그

  • useRef
  • state 관리
  • react
  • 컴포넌트트리
  • Availability Zones
  • 네이버커넥트
  • overflow-wrap
  • 리액트 생애주기
  • 한입크기로잘라먹는리액트
  • useParams
  • 한입 크기로 잘라먹는 리액트
  • API 호출
  • useNavigate
  • useState
  • 수평 스케일링
  • Edge Locations
  • AWS Regions
  • 리액트 프로젝트 만들기
  • 함수형 update
  • state 끌어올리기
  • Points of Presence
  • DOM
  • State 합치기
  • 리액트
  • 리액트 reducer
  • 데이터 수정
  • 리스트 조회
  • Page Moving
  • 서비스아키텍처
  • 분산저장소

최근 댓글

최근 글

티스토리

hELLO · Designed By 정상우.
밍비

프로그램의 편린

TIL

#0531 스위프트 옵셔널 바인딩, 외부 파라미터

2022. 5. 31. 17:40
728x90

스위프트 벼락치기중...재밌어 보이는 거만 가져왔다

1. 옵셔널 바인딩
스위프트 문법은 대체로 코틀린이랑 비슷함
근데 대표적인 다른점이 둘다 옵셔널 타입(nil이 들어갈 수 있는 타입)이 있지만 코틀린은 null을 쓰고 스위프트는 nil을 쓴다는 점임
ㅓ다르고ㅣ다르다...

쨌든 그래서 옵셔널타입의 변수가 nil인지 확인하기위해 해당변수를 다른 상수에다 넣고 그값이 존재하는지 확인한 후, 조건문을 돌려 처리할 수 있는데, 이를 옵셔널 바인딩이라 함
설명만으로는 먼소린지 모르겠으니 예제를 보자

if let realStr = optionalStr {
    print("\(realStr)")
} else {
    print("nil")
}


여기서 옵셔널타입의 optionalStr을 찐 스트링타입의 realStr에다 넣어서 그값이 존재하는지 아닌지 대신 판별시킨다는 뜻이다. 왜냐! 찐 스트링타입에는 nil이 못들어가기 때문!

참고로 저 조건문의 조건 칸에는 바인딩을 여러번 하는 것도 가능하고(다중 바인딩), 바인딩시킨 상수를 또 바인딩시키는 옵셔널 바인딩 체인도 가능함. 그 외에 다른 조건이랑 합쳐서 쓸 수도 있음

옵셔널 바인딩 체인만 좀더 설명하자면

if let val1 = nilAvailableStr,
   let val2 = Int(val1) {
       // 코드
}

이런 식으로 Int 형변환이 되는지를 갖고 한 번 더 꼬아서 조건을 까다롭게 만들 수도 있다는 뜻임

2. 외부 파라미터

코드 보다가

greeting(person:"MyFriend", with:"Hug")

이런 코드 보고 너무 잘 읽혀서 신기했던 적이 있음
이건 외부 파라미터 덕에 가능했던 코드임!!!

코틀린 함수 파라미터엔 내부파라미터와 외부파라미터가 있는데
내부는 함수 안에서만, 외부는 함수 밖에서만 사용가능한 파라미터다
외부파라미터 이름을 정의하지 않으면 외부파라미터의 이름은 자동으로 내부파라미터 이름과 같아진다.
처음에 나는 함수 안에서 쓰는 건 잘 알겠는데, 함수 밖에서 쓰는 게 잘 이해가 안 갔다

근데 코드를 보니까 명확하게 이해가 가능했음

func greeting(person: String){
    print("Hello"+person)
}
greeting(person:"My Friend")

여기서는 외부파라미터를 정의하지 않아서 내부와 외부파라미터는 똑같이 person이다
그래서 밑에서 호출할때 외부파라미터로 person을 쓴 거다

func greeting(person: String, with emotion: String){
    print ("Hello"+person+"with"+emotion)
}
greeting(person:"MyFriend",with:"Hug")

여기서 person은 내부, 외부 파라미터 모두 person이지만 뒤쪽 파라미터는 외부가 with, 내부가 emotion이다.
그래서 함수 안 print에서는 emotion으로 썼지만 밖에서 호출할 때는 with로 쓴다.

외부파라미터는 보면 볼수록 코드 가독성에 큰 도움이 되는 것 같다! 플젝할 때 써봐야겠다ㅎㅎ

728x90

'TIL' 카테고리의 다른 글

[안드로이드] [코틀린] 리사이클러뷰에 뷰바인딩 적용하기  (0) 2022.07.05
#0622 프로그래머스 실패율  (0) 2022.06.22
#0616  (0) 2022.06.16
#0530 okhttp 연동하기, 안드로이드 협업시 주의할점, 깃 사용법  (0) 2022.05.30
#0526 리눅스에서 wireshark 다운로드하기, github desktop, 뷰바인딩  (0) 2022.05.26
    밍비
    밍비

    티스토리툴바