inflearn logo
강의

강의

N
챌린지

챌린지

멘토링

멘토링

N
클립

클립

로드맵

로드맵

지식공유

앱 개발 기초부터 실전까지 하나로 끝내는 Swift & iOS 마스터 클래스

계산기 #9 - 문법 최적화

클로저 문법최적화 확인부탁드립니다!

144

김동준

작성한 질문수 1

1

계산기 $9 - 문법 최적화

수강중에 contains를 직접 해보라 하셔서 다른 방법으로 진행했기에 확인 부탁드립니다.

 

// func contains(where predicate: (Self.Element) throws -> Bool) rethrows -> Bool

 

var testarr = [1, 2, 3, 1, 2, 3]

var result3 = testarr.contains(where: { (num: Int) -> Bool in // 클로저 기본형

    return num > 4 // arr안에 4가 초과되는 숫자가 있는지 확인

})

print(result3)

 

result3 = testarr.contains(where: { (num) in // 컴파일러가 파라미터타입과 리턴타입을 유추 할 수 있기에 생략 가능

    return num > 4

})

print(result3)

 

result3 = testarr.contains { $0 > 4 } // 클로저가 유일한 파라미터이고, 클로저 코드가 return밖에 없어서 ()와 return과 argument를 생략 가능

print(result3)

ios swift git

답변 2

1

KxCoding

첼린지에서 제시한 조건에 맞게 잘 구현하셨습니다 👍

비록 공부 목적으로 구현한 코드지만,
testarr > testArr 이렇게 이름 정의 규칙을 맞춰주시면 더 좋은 코드가 될 것 같습니다 :)

0

인프런 AI 인턴

안녕하세요, 인프런 AI 인턴입니다. 김동준님께서 공유해주신 클로저 최적화 코드 확인해 보았습니다. 클로저 최적화는 Swift에서 효율적으로 코드를 작성하는 중요한 방법 중 하나입니다. 여러 단계를 통해 클로저를 최적화하는 과정을 잘 구현하셨습니다.

코드 설명

  1. 기본형 클로저: 처음에는 클로저의 전체 형태를 포함하여 사용해야 합니다. 클로저 매개변수와 반환 타입을 명시적으로 적어주는 방식입니다.

    testarr.contains(where: { (num: Int) -> Bool in return num > 4 })
    
  2. 타입 추론 사용: Swift의 타입 추론을 활용하여 매개변수 타입 지정 및 반환 타입을 줄일 수 있습니다.

    testarr.contains(where: { (num) in return num > 4 })
    
  3. 축약형 클로저 사용: 클로저가 단일 표현식인 경우 return 키워드를 생략할 수 있으며, 단일 인수일 경우에는 $0로 접근하여 더욱 간결하게 작성할 수 있습니다.

    testarr.contains { $0 > 4 }
    

각 단계는 코드의 가독성을 높이고 불필요한 부분을 줄이는 방법을 설명해 줍니다.

참고할 수 있는 기존 질문

비슷한 내용에 대한 보다 자세한 설명을 원하신다면 다음 링크들을 참고하시길 바랍니다.

저는 질문자님의 이해를 돕고자 지식공유자님의 기존 답변을 참고하여 유사한 답변 링크를 추천해드리고 있습니다.
현재 베타 기능으로 답변이 만족스럽지 않을 수 있는 점 양해 부탁드립니다. 🙏
추가적으로 궁금한 점이 있으시면, 이어서 질문해 주세요. 곧 지식공유자께서 답변해 주실 것입니다.

강의 자료 접근 불가

1

20

1

layout group의 종류 3가지 실무 적합활용이 궁금합니다.

0

20

1

결제기능까지 알려주실수있나요?

1

28

2

보안 점검

1

31

2

강의영상 버퍼링

1

42

4

git status 에서 폴더에 파일을 생성하면 해당 파일이 수정으로 뜨는데 기존 파일 수정시에는 수정내역으로 안뜨네요 왜 그런걸까요?

0

14

1

DESIGN.md 파일이 잘못되었어요

1

46

1

mcp 연결안됌

1

62

2

430강 modularization

0

111

2

개발버전 release 버전 실습 중 오류-부탁드립니다.

0

137

2

메모의 그룹을 클릭할때마다 항목이 틀리게 나옵니다.

0

129

2

타이머 오차

0

161

2

수업 중 궁금한 부분이 있습니다.

0

107

2

Xcode Live Rendering 문의

0

129

2

Xcode에 gpx파일이 인식이 안됩니다.

0

253

2

API 출력 오류.. 도와주세요.

0

188

2

play ground 오류?? 원인을 알고 싶습니다.

0

214

2

런타임 오류... 부탁드립니다.

0

268

2

런타임 오류 - 조언 부탁드립니다.

0

217

2

Playground 실행중 오류

0

299

2

Custom Activity Item 질문

0

128

2

오류를 원인을 알고 싶습니다.

0

167

1

Section21 Nework Part1 / JSON

0

167

2

파라미터와 아규먼트 혼동

0

252

3