Swift도 Kotlin의 if 공식을 쓰고 싶어요.
Kotlin의 if 표현식
val boolean = true
val string: String = if (boolean) {
val str1 = "Hello"
val str2 = "World"
str1 + " " + str2
} else {
"NO"
}
print(string) // Hello World
Swift에서 겪는 어려움
단순히 값을 대입한다면 세 가지 연산자를 사용하면 된다.let string: String = boolean ? "YES" : "NO"
그러나 브랜치 후에는 여러 줄 처리를 할 수 없습니다.// こんな記述はできない
let string: String = boolean ? {
let str1 = "Hello"
let str2 = "World"
return str1 + " " + str2
} : "NO"
벽장 사용 가능
변환 참조를 보십시오. Setting a Default Property Value with a Closure or Function 1절은 폐쇄기를 사용하여 속성의 초기 값을 설정하는 방법을 설명합니다.폐쇄는 가격을 반환할 수 있기 때문에 사용할 수 있습니다.// Setting a Default Property Value with a Closure or Functionの項より引用
let someProperty: SomeType = {
return someValue
}()
폐쇄+삼원 연산자로 실현
엔클로저로 돌아가기만 하면 쉽게 실행할 수 있습니다.let string: String = boolean ? {
let str1 = "Hello"
let str2 = "World"
return str1 + "" + str2
}() : "NO"
초기 값$0
에도 사용할 수 있습니다.let string: String = boolean ? {
let str2 = "World"
return $0 + "" + str2
}("Hello") : "NO"
폐쇄식 + switch 문장으로 실현
세 가지 연산자는 두 개의 지점만 만들 수 있기 때문에 세 개 이상으로 나누기 위해 switch 문장을 사용해 보세요.
이것은 내부에 값을 보존하는 이중 폐쇄일 뿐만 아니라 실용적이지도 않을 것이다 var
.
댓글에 지적되고 수정됐어요!실용적일 것 같다let num = 0
let string: String = {
switch num {
case 0:
let str1 = "Hello"
let str2 = "World"
return str1 + "" + str2
case 1:
return ""
default:
return ""
}
}()
총결산
나는 Swift로 Kotlin의 if식 물건을 썼다.
벽장을 사용하기 때문에 끼워넣기가 조금 늘어나지만 편리하게 사용할 수 있습니다.
참고 자료
let string: String = boolean ? "YES" : "NO"
// こんな記述はできない
let string: String = boolean ? {
let str1 = "Hello"
let str2 = "World"
return str1 + " " + str2
} : "NO"
변환 참조를 보십시오. Setting a Default Property Value with a Closure or Function 1절은 폐쇄기를 사용하여 속성의 초기 값을 설정하는 방법을 설명합니다.폐쇄는 가격을 반환할 수 있기 때문에 사용할 수 있습니다.
// Setting a Default Property Value with a Closure or Functionの項より引用
let someProperty: SomeType = {
return someValue
}()
폐쇄+삼원 연산자로 실현
엔클로저로 돌아가기만 하면 쉽게 실행할 수 있습니다.let string: String = boolean ? {
let str1 = "Hello"
let str2 = "World"
return str1 + "" + str2
}() : "NO"
초기 값$0
에도 사용할 수 있습니다.let string: String = boolean ? {
let str2 = "World"
return $0 + "" + str2
}("Hello") : "NO"
폐쇄식 + switch 문장으로 실현
세 가지 연산자는 두 개의 지점만 만들 수 있기 때문에 세 개 이상으로 나누기 위해 switch 문장을 사용해 보세요.
이것은 내부에 값을 보존하는 이중 폐쇄일 뿐만 아니라 실용적이지도 않을 것이다 var
.
댓글에 지적되고 수정됐어요!실용적일 것 같다let num = 0
let string: String = {
switch num {
case 0:
let str1 = "Hello"
let str2 = "World"
return str1 + "" + str2
case 1:
return ""
default:
return ""
}
}()
총결산
나는 Swift로 Kotlin의 if식 물건을 썼다.
벽장을 사용하기 때문에 끼워넣기가 조금 늘어나지만 편리하게 사용할 수 있습니다.
참고 자료
let string: String = boolean ? {
let str1 = "Hello"
let str2 = "World"
return str1 + "" + str2
}() : "NO"
let string: String = boolean ? {
let str2 = "World"
return $0 + "" + str2
}("Hello") : "NO"
세 가지 연산자는 두 개의 지점만 만들 수 있기 때문에 세 개 이상으로 나누기 위해 switch 문장을 사용해 보세요.
이것은 내부에 값을 보존하는 이중 폐쇄일 뿐만 아니라 실용적이지도 않을 것이다
var
.댓글에 지적되고 수정됐어요!실용적일 것 같다
let num = 0
let string: String = {
switch num {
case 0:
let str1 = "Hello"
let str2 = "World"
return str1 + "" + str2
case 1:
return ""
default:
return ""
}
}()
총결산
나는 Swift로 Kotlin의 if식 물건을 썼다.
벽장을 사용하기 때문에 끼워넣기가 조금 늘어나지만 편리하게 사용할 수 있습니다.
참고 자료
The Swift Programming Language - Initialization
Reference
이 문제에 관하여(Swift도 Kotlin의 if 공식을 쓰고 싶어요.), 우리는 이곳에서 더 많은 자료를 발견하고 링크를 클릭하여 보았다 https://qiita.com/jnikd/items/f6bcad04a617ebdb3259텍스트를 자유롭게 공유하거나 복사할 수 있습니다.하지만 이 문서의 URL은 참조 URL로 남겨 두십시오.
우수한 개발자 콘텐츠 발견에 전념 (Collection and Share based on the CC Protocol.)