我有一個班級“球員”和一個班級“團隊”。我創建了兩個字串陣列,分別呼叫 player1.name、player2.name 等。一個陣列包含主要玩家,另一個陣列包含次要玩家
班級:
class Players {
let name: String
let number: int
var position:PositionPlayer
var birth: Date
let nationality: String
var height: Double
var weight: int
init(name: String, number: Int, position: PositionPlayer, birth: Date, height: Double, weight: Int) {
self.name = name
self.number = number
self.position = position
self.birth = birth
self.nationality = nationality
self.height = height
self.weight = weight
}
班組是空的(只是在上面做功能)
陣列:
var mainPlayers: [String] = []
var secondaryPlayers: [String] = []
在陣列中添加元素:
mainPlayers.append("\(player1.name)")
如何在“團隊”類中創建一個函式來檢查陣列的元素并在 2 個陣列之間進行替換?
例如,我有 3 個主要玩家和 3 個次要玩家,我想用玩家 4(次要玩家)代替玩家 1。
uj5u.com熱心網友回復:
如果集合的順序無關緊要,您應該使用一個集合來確保您的集合中沒有重復的玩家:
var mainPlayers: Set = ["player1", "player2", "player3"]
var secondaryPlayers: Set = ["player4", "player5", "player6"]
let oldPlayer = "player1"
let newPlayer = "player4"
if mainPlayers.contains(oldPlayer),
secondaryPlayers.contains(newPlayer),
let oldMember = mainPlayers.remove(oldPlayer),
let newMember = secondaryPlayers.remove(newPlayer),
mainPlayers.insert(newMember).inserted,
secondaryPlayers.insert(oldMember).inserted {
print("oldMember", oldMember) // player1
print("newMember", newMember) // player4
print(mainPlayers) // ["player3", "player4", "player2"]
print(secondaryPlayers) // ["player1", "player5", "player6"]
}
如果集合的順序很重要,則陣列方法應如下所示:
var mainPlayers = ["player1", "player2", "player3"]
var secondaryPlayers = ["player4", "player5", "player6"]
if let oldMemberIndex = mainPlayers.firstIndex(of: "player1"),
let newMemberIndex = secondaryPlayers.firstIndex(of: "player4"),
case let oldMember = mainPlayers.remove(at: oldMemberIndex),
case let newMember = secondaryPlayers.remove(at: newMemberIndex) {
mainPlayers.insert(newMember, at: oldMemberIndex)
secondaryPlayers.insert(oldMember, at: newMemberIndex)
print("oldMember", oldMember) // player1
print("newMember", newMember) // player4
print(mainPlayers) // ["player4", "player2", "player3"]
print(secondaryPlayers) // ["player1", "player5", "player6"]
}
轉載請註明出處,本文鏈接:https://www.uj5u.com/net/425806.html
