Swift
15. Closure (클로저)
리버윤
2024. 12. 11. 15:11
728x90
Chat gpt. closure를 사용하는 언어들을 알려줘
클로저(Closure)는 여러 프로그래밍 언어에서 지원하는 기능으로, 함수와 그 함수가 선언된 환경을 함께 캡슐화하여 사용할 수 있게 합니다. 클로저를 지원하는 주요 프로그래밍 언어는 다음과 같습니다:
- JavaScript: 클로저는 JavaScript의 핵심 개념 중 하나로, 함수가 다른 함수의 범위에 접근할 수 있도록 합니다.
- Python: Python에서는 내부 함수를 정의하여 클로저를 만들 수 있습니다.
- Ruby: Ruby의 블록과 프로시저는 클로저의 형태로 사용될 수 있습니다.
- Swift: Swift의 클로저는 변수를 캡처하고 사용할 수 있는 기능을 제공합니다.
- Scala: Scala는 함수형 프로그래밍을 지원하며, 클로저를 사용하여 상태를 유지할 수 있습니다.
- Go: Go 언어에서도 클로저를 지원하여 함수 내부에서 변수를 캡처할 수 있습니다.
- Kotlin: Kotlin의 람다 표현식은 클로저의 특성을 가지고 있습니다.
- Haskell: Haskell은 함수형 언어로서 클로저를 자연스럽게 지원합니다.
- Lisp: Lisp 계열 언어는 클로저를 기본적으로 지원하며, 다양한 형태로 사용할 수 있습니다.
- C#: C#의 람다 식과 익명 메서드는 클로저 기능을 제공합니다.
- 클로저 (Closure)
func add(x:Int, y:Int) -> Int {
return x+y
}
print(add(x: 3, y: 5)) //여기와
print(type(of: add))
let add1 = { (x:Int, y:Int) -> Int in
return x+y
}
print(add1(2, 3)) //여기 주의
- 후행 클로저
func add(x:Int, y:Int) -> Int {
return x+y
}
print(add(x: 3, y: 5)) //여기와
print(type(of: add))
let add1 = { (x:Int, y:Int) -> Int in
return x+y
}
print(add1(2, 3)) //여기 주의
func math(x: Int, y: Int, cal: (Int, Int) -> Int) -> Int {
return cal(x, y) //add1(1,2)이 실행한 결과가 리턴되는 것.
}
print(math(x: 1, y: 2, cal: add1))
func add(x:Int, y:Int) -> Int {
return x+y
}
print(add(x: 3, y: 5)) //여기와
print(type(of: add))
let add1 = { (x:Int, y:Int) -> Int in
return x+y
}
print(add1(2, 3)) //여기 주의
func math(x: Int, y: Int, cal: (Int, Int) -> Int) -> Int {
return cal(x, y) //add1(1,2)이 실행한 결과가 리턴되는 것.
}
print(math(x: 1, y: 2, cal: add1))
var a = math(x: 10, y: 20, cal: { (x: Int, y:Int) -> Int in
return x+y
})
print(a) //30
a = math(x: 100, y: 200) { (x:Int, y:Int) -> Int in
return x+y
} //후행클로저
print(a) //300
math(x: 10, y: 20) { (x:Int, y:Int) -> Int in
return x+y
}
math(x: 10, y: 20, cal: { (x:Int, y:Int) -> Int in
return x+y
})
728x90