무엇이 벽호입니까?
이른바 탈의실
뭘 할 수 있어요?
이럴 때 써요.
전역 변수의 성명을 최대한 줄이려면
기본 형식
함수 이름이 없기 때문에 매개 변수와 반환값 in 다음에 처리를 설명합니다.매개 변수나 되돌아오는 값이 없을 수도 있습니다.
{ (引数名:引数の型) -> 戻り値の型 in
処理
}
써보세요.
벽장 안에는 여러 가지 작법이 있기 때문에 생각만 해도 써 보았다.
매개 변수와 반환 값이 없는 모드
// 定義:引数と戻り値がないパターン その1
let closure = { () -> Void in }
// 定義:引数と戻り値がないパターン その2
let closure2: () -> Void = {}
매개 변수가 있고 되돌아오는 값이 없는 모드
// 定義:引数あり・戻り値がないパターン
let closure = { (a: Int) -> Void in }
매개 변수, 반환 값이 있는 모드
// 定義:引数なし・戻り値があるパターン
let closure = { () -> Int in
return 1
}
// 実行
let val = closure()
print( val ) // 1
매개 변수/반환 값이 있는 모드
// 定義:引数あり・戻り値があるパターン
let closure = { (a: Int) -> Int in
return a + 2
}
// 実行
let val = closure(4)
print( val ) // 6
리턴 모드 생략
// 定義:returnを省略したパターン
let closure = { (a: Int) -> Int in a + 3 }
// 実行
let val = closure(5)
print( val ) // 8
반환값 형식을 생략하는 모드
// 定義:戻り値の型を省略したパターン
let closure = { (a: Int) in a + 3 }
// 実行
let val = closure(4)
print( val ) // 7
매개변수 유형 생략 모드
// 定義:引数の型を省略したパターン
let closure = { a in a + 6 }
// 実行
let val = closure(4)
print( val ) // 10
정의와 처리가 분리된 모델
// 定義
let closure: ((Int, Int) -> Int)
// 処理
closure = { a, b in
return a + b + 1
}
// 実行
let val: Int = closure3(2, 3)
print(val) // 6
Reference
이 문제에 관하여(무엇이 벽호입니까?), 우리는 이곳에서 더 많은 자료를 발견하고 링크를 클릭하여 보았다 https://zenn.dev/issetwo/articles/14d60958fcc4f6텍스트를 자유롭게 공유하거나 복사할 수 있습니다.하지만 이 문서의 URL은 참조 URL로 남겨 두십시오.
우수한 개발자 콘텐츠 발견에 전념 (Collection and Share based on the CC Protocol.)