【发布时间】:2021-07-14 02:28:19
【问题描述】:
这里初始化这个结构有两个简单的问题。
- 一个是枚举值 TS(我得到错误:无法将类型“TournNames”的值转换为预期的参数类型“TournamentName”)
- 另一个是初始化字符串数组(我收到错误:无法将类型“[String]”的值转换为预期的参数类型“TourmentScores”
假设我正在尝试建立一个结构来模拟网球运动员的得分以及他们在每个主要锦标赛中的所有比赛(只是为了好玩)。每个锦标赛都有一个名称(例如温布尔登)和该球员的一系列分数(例如,在首场比赛中,他们的分数可能是“4-6, 6-4, 7-6, 6-2”)。 . 每场比赛最多7场比赛。每个玩家应该有一个包含四个锦标赛的数组(名称和分数数组),最终应该有一个玩家数组。我也试图不太成功地使用枚举。理想情况下,如果我想知道罗杰·费德勒在今年第三场温网比赛中的表现,我会访问类似 player.tournament.wim.Roundof32 或类似的东西。但在我开始玩之前,我似乎无法为单个锦标赛初始化虚拟数据。
有什么想法吗?我认为这不是那么难的问题,但我只是不知道每个问题。有问题的两行见下方“***本行”
// tournament name enum
enum TournNames : String {
case wim = "Wimbledom"
case fo = "French Open"
case ao = "Australian Open"
case uo = "US Open"
}
//
struct TournamentName {
var Tname : TournNames // = .wim
}
// This is the structure for a tournament score array with some dummy values.
struct TouramentScores {
var Match1 : String = "7-6, 6-4, 3-6, 7-6"
var Match2 : String = "7-6, 6-4, 3-6, 7-6"
}
// This is one entire Tournament record for one player = tournament name + array of scores ... the next goal but not used here until I get over these hurdles
struct TournamentResult {
var TournamentName : TournNames = .wim
var Scores : TouramentScores
}
// ... finally the structure of a player ...
struct DummyTennisPlayer {
var LastName : String // last name
var FirstName : String //first name
var TN : TournamentName
var TS : TouramentScores
// var WimRes : TournamentResult // to start a single tournament
// var SeasonResults : [TournamentResult] // ultimately should be an array of 4 tournaments
}
// trying to initialize some dummy data without success after trying several things
extension DummyTennisPlayer {
static var dummyResults : [DummyTennisPlayer] {
[
DummyTennisPlayer.init(
LastName : "Federer",
FirstName: "Roger",
TN : TournNames.wim // **** this line
,
TS : ["XX", "yy"] /// *** this line
)
]
}
}
【问题讨论】:
标签: arrays swift multidimensional-array struct