J'écris un jeu rapide et je veux écrire une liste de buts cibles pour le jeu court, moyen et long. Ceci est juste une liste linéaire des objectifs pour l'argent.Swift - Obtenir la valeur du dictionnaire où la clé est une énumération
enum GameLength : Int {
case ShortGame
case MediumGame
case LongGame
static let allValues = [
GameLength.ShortGame.rawValue,
GameLength.MediumGame.rawValue,
GameLength.LongGame.rawValue,
]
}
struct GameGoal {
// I think this should be a set as the game lengths cannot repeat
var cashGoals = [ [GameLength.ShortGame: 100] ,
[GameLength.MediumGame: 200] ,
[GameLength.LongGame: 300] ]
func target(gameLength:GameLength) {
var result = cashGoals[gameLength].first
print (result)
}
}
var gameLength:GameLength = .MediumGame
var gameGoal = GameGoal().target(gameLength)
print (gameGoal)
Le problème ici est que je n'arrive pas à accéder maintenant à la valeur pour la cible donnée.
Idéalement, je souhaite mapper l'énumération gameLength avec une valeur.
La raison pour laquelle ils sont séparés est parce que j'ai besoin d'appliquer une pondération à l'objectif de trésorerie plus tard.
Peut-être que je suis trop compliquer le problème.
Mais peu importe;
Question> Comment puis-je accéder au dictionnaire où la clé est un ENUM, et seulement obtenir la première ENUM qui correspond à la valeur
Ceci est un code OP, pas le mien. Il n'a pas demandé de conseils de style. – Bek
@Bek Peu importe, les amis ne laissent pas les amis écrire le code Swift 2 dans Swift 3 – Alexander
Le commentaire appartient à OP post alors. – Bek