x.hasSuffix(“pepper”)가 작동하는 곳에서 x는 어떻게 작동합니까?

StackOverflow https://stackoverflow.com//questions/24004251

  •  20-12-2019
  •  | 
  •  

문제

아래 코드 블록을 이해하는 데 문제가 있습니다. let x where x.hasSuffix("pepper").

let vegetable = "red pepper"

switch vegetable {
    case "celery":
        let vegetableComment = "Add some raisins and make ants on a log."
    case "cucumber", "watercress":
        let vegetableComment = "That would make a good tea sandwhich"
    case let x where x.hasSuffix("pepper"):
        let vegetableComment = "Is it a spicy \(x)"
    default:
        let vegetableComment = "Everything tastes good in soup."
}

콘솔 출력

야채댓글: 매콤한 고추인가

아래와 같은 논리가 벌어지고 있는 것 같습니다.

x = vegetable
if (x's suffix == 'pepper') 
    run case

누군가 나에게 이것을 더 잘 설명해 줄 수 있습니까?

도움이 되었습니까?

해결책

vegetable 암시적이다 String.다음과 같이 작성하는 것과 같습니다.

var vegetable: String = "red pepper"

hasSuffix 다음과 같이 선언됩니다. func hasSuffix(suffix: String) -> Bool 따라서 an은 다음을 반환합니다. Bool.그만큼 where 키워드는 추가 요구 사항을 지정하며 다음에서만 사용할 수 있습니다. switch 진술.
이 모든 것이 담겨 있기 때문에, vegetable 변수는 x에 할당됩니다(let x).

다음에 대한 자세한 내용을 읽을 수 있습니다. where 그리고 switch 여기.

라이센스 : CC-BY-SA ~와 함께 속성
제휴하지 않습니다 StackOverflow
scroll top