티스토리 뷰
1. 절차지향적인 코드
var sum=0
for i in 1...10{
sum += 1
}
print(sum)
=> sum에 상태가 저장되고 있었다!
함수지향적인 코드
print((1...10).reduce(0) { $0 + $1 })
//이렇게 도는건 reduce의 특징!
=> 따로 상태를 저장하지 않고, reduce 안에서 결과가 합쳐진다.
=> 변화되는 값이 없다.
Rx = Reactive Extension
-> 함수형 reactive programming
-> Observable 스트림을 사용하는 비동기 프로그래밍 API
-> 엑셀 같은 것?!
플레이그라운드에서 RxSwift 실습하기
pod try RxSwift
'비동기'
Observable == Sequence
ObservableType.subscribe(_:) == Sequence.makeIterator()
-> ObserverType parameter 받고,
Observable은 항상 subscriber 필요.
위에거는 subscriber가 없어서 실행이 안될거고, 밑에거는 될거다
subscribe(_: ) 함수는 Disposable한 인스턴스를 리턴하는데, 주로 DisposableBag 인스턴스에 더해주게 된다.
====
Observable sequence를 만들고 subscribe 하는 여러가지 방법이 있다.
1. never
- 절대 종료되지 않고, 어떠한 event도 emit 하지 않는다.
2. empty
-
3. just
- 하나의 원소로 Observable Sequence 만들기
4. of
- 고정된 갯수의 원소로 Observable Sequence 만들기
5. from
6. create
7. range
8. repeatElement
9. generate
10. deferred
11. error
12. doOn
called Observable : 누군가 자신을 구독해야, lazy evaluation?을 해서, event 발생 가능해진다.
Observable Stream
zip
case .next
case .error
case .completed
내일 공부할 것
1. sorted 함수 보기
(by : {$0. tag < $1. tag }) ??
달러표시의 의미 ??
태그는 0부터 9까지 달려있음.
2. foreach 쓰는법
let numberWords = ["1", "2", "3"]
for word in numberWords {
print(word)
}
numberWords.forEach { word in
print(word)
}
예제에서는
.forEach({$0.maximum = 1})
-> loop를 돌아서 모든 field의 maximum을 1로 바꿔준다
'macOS, iOS' 카테고리의 다른 글
일급객체란? (0) | 2019.07.09 |
---|---|
Equatable (0) | 2019.07.08 |
[swift] Generics(제너릭스, T) (0) | 2019.07.08 |
Xcode 단축키들 (0) | 2019.07.05 |
[Swift] Closure - $0, escaping, autoclosure (0) | 2019.07.05 |