728x90
반응형
알아야 산다!
filter, map, reduce 사용법 (축약)
var a = [1,2,3,4,5]
var strs = a.filter{$0 > 4}.map{String($0)}
print(strs)
//["5"]
a.reduce(1, { (result, current) -> Int in
return result * current
})
함수
func foo(with value: Int) -> Int {
return value
}
// return 한줄일 때 생략 가능
func foo(with value: Int) -> Int { value }
func insert(object target: Int, at index: Int) {
}
insert(object: <#T##Int#>, at: <#T##Int#>)
클로저
{ 매개변수 -> 리턴타입 in
실행코드
}
//클로저 (익명함수)
var a = { (value: Int) -> Int in
return value * 2
}
a(10)
//completion 같은 타입에 익명함수 전달
func foo(completion: () -> ()) {
print("foo")
completion()
}
//호출 시
foo(completion: {
print("completion")
})
//생략 가능
foo {
print("completion")
}
extention
SDK 나 기존 클래스, 기존 자료구조형을 확장해서 사용, 함수도 추가 가능
새로운 타입도 추가 가능 (nested property)
class A {
var a = 5
}
extension A {
func display() {
print(a)
}
}
var a = A()
a.display()
extension Array {
//computed variable 이라고 함
var isNotEmpty: Bool {
return isEmpty == false
}
func display() {
print(self)
}
//Nested Property
class SubArray {
var list: [Int] = []
}
}
var a: [Int] = []
a.isNotEmpty
// Nested Property 에 아래와 같이 접근 가능하다고 함
[Int].SubArray
728x90
반응형
'Apple Developer > Swift' 카테고리의 다른 글
GitHub에 배포한 스위프트 패키지 가져오기 (0) | 2024.04.01 |
---|---|
xcode 에서 test 버튼 (0) | 2024.04.01 |
xcode 코드 접기 (Code folding ribbon) (0) | 2024.03.29 |
Swift 어려운 내용 (0) | 2023.08.22 |
Swift 초보 2 (0) | 2023.08.22 |