아래 코드에는 다음과 같은 오류가 있습니다. Missing return in a function expected to return 'String'
var description: String {
get{
if(pending == nil){
return "a"
}
else{
if let op = internalProgram.last as? String{
if operations[op] != nil {
return "b"
}
}
else {
return "c"
}
}
}
}
그러나 마지막을 제거 else
하고 단순히 그대로두면 return "c"
제대로 작동합니다.
var description: String {
get{
if(pending == nil){
return "a"
}
else{
if let op = internalProgram.last as? String{
if operations[op] != nil {
return "b"
}
}
return "c"
}
}
}
첫 번째 코드가 작동하지 않는 이유는 무엇입니까? 동일한 기능이 없습니까? 둘 다 마지막 반품 명세서에 도달하지 않습니까? 첫 번째 코드에서 다른 모든 것이 작동하지 않으면 마지막 return 문이 실행됩니다.
당신이 조건을 그리워했기 때문에, 어떤 경우 operations[op] == nil
:
var description: String {
get{
if(pending == nil){
return "a"
}
else{
if let op = internalProgram.last as? String{
if operations[op] != nil {
return "b"
}
// what's the return value here?
}
else {
return "c"
}
}
}
}
반면에 코드를 줄여 사람과 기계가 모두 더 쉽게 읽을 수 있도록 만들 수 있습니다.
var description: String {
if pending == nil {
return "a"
} else if let op = internalProgram.last as? String, operations[op] != nil {
return "b"
} else {
return "c"
}
}
이 기사는 인터넷에서 수집됩니다. 재 인쇄 할 때 출처를 알려주십시오.
침해가 발생한 경우 연락 주시기 바랍니다[email protected] 삭제
몇 마디 만하겠습니다