2014-07-07 1 views
1

Stanford 's Card Game 튜토리얼의 Objective C 코드를 Swift로 번역하고 놀이터에서 놀고 놀았습니다.놀이터에서 게터 결과에 "some"을 붙이는 이유

class PlayingCard:Card{ 


    var suit:String? = "?" 
    var rank:Int? 

    func getSuit() -> String{ 
     return self.suit! 
    } 

    func setSuit(suit:String){ 

     let validity_check = self.validSuits.contains(suit) 
     if validity_check{ 
      self.suit = suit 
     } 

    } 


    func setRank(rank:Int){ 
     if rank <= maxRank{ 
      self.rank = rank 
     } 
    } 



} 



var array:Array = ["hi", "world"] 

array.contains("HI") 


let cardtest = PlayingCard() 
cardtest.suit => returns {some "spade"} 
cardtest.getSuit() => returns "spade" 
cardtest.rank => returns {some 10} 

이 무엇을 의미합니까 : 내 플레잉 카드 인스턴스의 속성 게터를 호출 할 때

그러나, 놀이터는 "일부"와 결과를 앞에 추가? 왜 그것은 속성 getter에서 반환하지만 custom getter 함수에서는 반환하지 않습니까?

답변

2

속성이 String?으로 정의되었으므로이 값은 실제로 값 (일부)과 해당 값이 있는지 여부를 나타내는 OptionalString 열거 형입니다.

getSuit에서 "spade"를 반환하는 이유는 -> String으로 정의되어 있기 때문입니다. -> String?으로 변경하면 동일한 결과가 표시됩니다. (some "spade")

줄을 cardtest.suit!으로 변경하면 "spade"값이 표시됩니다. 선택적 값을 언랩합니다.