강의로 돌아가기
-

...where 구문의 사용여부

typealias ShopingItem = (name:String, amount:Int)
let cart = ShopingItem("beer", 1)

switch cart {
case ("beer", 0...3) : //맥주 3병 이하
    print("Guide to small item counter")
case ("beer", 51...100) : //맥주 51병이상 100병 까지
    print("Call manager")
case ("beer", _) where cart.amount > 100 : //맥주 100병 초과
    print("Call police")
default: //나머지(맥주 4병 이상 50병 이하)
    print("Make wait in line")

}

이렇게 코드를 짯는데
실행하면 성공이고 제출하면 실패인데
실패뜨는 구간이 where 구문을 사용하는지 체크하는 부분이거든요
제 딴에는 분명 where 구문이 들어갔는데 왜 이렇게 뜨는지 알 수가 없네요
다른 분들은 어떤 코드를 짜셨나요 .. ?

작성중인 코드―Beer.swift
1
2
3
4
5
6
7
8
9
10
11
12
13
14
typealias ShopingItem = (name:String, amount:Int)
let cart = ShopingItem("beer", 1)

switch cart {
case ("beer", 0...3) : //맥주 3병 이하
    print("Guide to small item counter")
case ("beer", 51...100) : //맥주 51병이상 100병 까지
    print("Call manager")
case ("beer", _) where cart.amount > 100 : //맥주 100병 초과
    print("Call police")
default: //나머지(맥주 4병 이상 50병 이하)
    print("Make wait in line")

}
1 개의 답변
-
typealias ShopingItem = (name:String, amount:Int)
let cart = ShopingItem("beer", 1)

switch cart {
case ("beer", 0...3) : //맥주 3병 이하
    print("Guide to small item counter")
case ("beer", 51...100) : //맥주 51병이상 100병 까지
    print("Call manager")
case ("beer", let amount) where amount > 100 : //맥주 100병 초과
    print("Call police")
default: //나머지(맥주 4병 이상 50병 이하)
    print("Make wait in line")

}

해결 되었네요
초기화 해서 하다보니 let amount 부분 ( 상수 선언 )
확인하여

"beer", let amount) where amount > 100 :

라는 코드로 수정하여 처리했습니다
이것저것 시도해보다.. 꼬였었네요

답변 쓰기
이 입력폼은 마크다운 문법을 지원합니다. 마크다운 가이드 를 참고하세요.