Swift 서브스크립트 문제 관련해서 질문이 있습니다.
조회수 360회
문제입니다.
주석 아래에 서브스크립트를 작성해야합니다. 일단 제가 생각한 것은
- 정수를 받는 서브스크립트와 문자열을 받는 서브스크립트 두 개를 생성해야 한다.
- 하단쪽에 서브스크립트의 값을 읽는 부분에 옵셔널 바인딩한 것으로 보아 옵셔널 타입으로 리턴한다.
입니다. 그런데 접근을 할려니 어떻게 구현해야할지 모르겠네요. 제가 감이 안잡히는 부분은
- 서브스크립트는 어떤 타입을 리턴해야 하는가?
- 어떻게 서브스크립트 매개변수 부분을 이용해서 firstTeam의 number로 접근하는가?
인 것 같습니다. 아직 많이 부족해서 더 공부를 해야하는데 안풀리니까 조바심이 나네요.
도움 부탁드립니다.
import UIKit
struct Player {
let number: Int
let name: String
}
struct Team {
let name: String
let squad: [Player]
// 여기에서 서브스크립트를 구현해 주세요.
}
// 아래에 있는 코드는 수정하지 마세요.
let firstTeam = [
Player(number: 1, name: "Hugo Lloris"),
Player(number: 3, name: "Danny Rose"),
Player(number: 4, name: "Toby Alderweireld"),
Player(number: 5, name: "Jan Vertonghen"),
Player(number: 7, name: "Heung-Min Son"),
Player(number: 10, name: "Harry Kane"),
Player(number: 12, name: "Victor Wanyama"),
Player(number: 20, name: "Dele Alli"),
Player(number: 23, name: "Christian Eriksen"),
Player(number: 33, name: "Ben Davies")
]
let tot = Team(name: "Tottenham Hotspur", squad: firstTeam)
var name: String?
var number: Int?
if let player = tot[7] {
name = player.name
}
if let player = tot["David de Gea"] {
number = player.number
}
print(name == .some("Heung-Min Son") && number == nil)
-
(•́ ✖ •̀)
알 수 없는 사용자
1 답변
-
공부하며 풀어 봤습니다. 문제에서 요구하는 정답인지는 잘 모르겠는데, 일단 주어진 테스트는 통과하네요.
struct Team { let name: String let squad: [Player] // TODO : 여기에서 서브스크립트를 구현해 주세요. //--------------------------------------------- subscript(number: Int) -> Player? { for player in squad { if player.number == number { return player } } return nil } subscript(name: String) -> Player? { for player in squad { if player.name == name { return player } } return nil } //--------------------------------------------- }
댓글 입력