본문 바로가기

Apple Developer/Swift

Swift 초보 공부 잼나여!

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