struct PredicateBindings

<aside> πŸ’‘ Predicate에 μž…λ ₯된 λ³€μˆ˜κ°’μ„ λ³€μˆ˜ν‚€-κ°’ λ”•μ…”λ„ˆλ¦¬ ν˜•νƒœλ‘œ λ§€ν•‘ν•œ, μΌμ’…μ˜ ν™˜κ²½λ³€μˆ˜ λͺ¨μŒ.

<aside> <img src="/icons/list_blue.svg" alt="/icons/list_blue.svg" width="40px" /> λͺ©μ°¨

</aside>

</aside>

Swift의 κΈ°λ³Έ Predicate νƒ€μž…λ§Œμ„ μ‚¬μš©ν•  κ²½μš°μ—λŠ” ν•΄λ‹Ή νƒ€μž…μ— λŒ€ν•΄ μ•Œ ν•„μš”κ°€ μ—†λ‹€. μ»€μŠ€ν…€ Predicate κ΅¬ν˜„μ‹œ λ‚΄λΆ€μ μœΌλ‘œ μ‚¬μš©λœλ‹€.

ν˜„μž¬λ‘œμ„œλŠ” μ»€μŠ€ν…€ predicate νƒ€μž… μ œμž‘κ³Ό κ΄€λ ¨λœ proposal 및 APIκ°€ μ‘΄μž¬ν•˜μ§€ μ•Šμ§€λ§Œ, Predicate νƒ€μž…μ˜ κ΅¬ν˜„μ€ μ˜€ν”ˆμ†ŒμŠ€λ‘œ κ³΅κ°œλ˜μ–΄ μžˆλ‹€.

github.com/apple/swift-foundation: Predicate


λ§Œμ•½ μ»€μŠ€ν…€ predicate νƒ€μž…μ„ κ΅¬ν˜„ν•˜λ € ν•œλ‹€λ©΄, ν•΄λ‹Ή νƒ€μž…μ„ 톡해 λͺ¨λ“  λ³€μˆ˜κ°’μ΄ κ΄€λ¦¬λ˜λ„λ‘ ν•΄μ•Ό ν•œλ‹€. λ‹€μŒ μ‚¬μš© 방법을 μ°Έκ³ ν•˜μž.

μ‚¬μš© 방법

λͺ¨μ•„보기

// 값을 λ”•μ…”λ„ˆλ¦¬ λŒ€μ‹  배열에 μ €μž₯ν•œλ‹€(λ‚΄λΆ€ μš”μ†ŒλŠ” 거의 λŒ€λΆ€λΆ„μ˜ κ²½μš°μ— 맀우 μ μœΌλ―€λ‘œ, 이λ₯Ό 톡해 heap allocation 및 hashing μ˜€λ²„ν—€λ“œλ₯Ό κ°μ†Œμ‹œν‚¨λ‹€)
private var storage: [(id: PredicateExpressions.VariableID, value: Any)]

init<each T>(_ value: repeat (PredicateExpressions.Variable<each T>, each T))

subscript<T>(variable: PredicateExpressions.Variable<T>) -> T? { get set }
func binding<T>(_ variable: PredicateExpressions.Variable<T>, to value: T) -> PredicateBindings

참고자료