Closed CelineRenaud closed 7 years ago
taskPool
et processPool
sont des places. Ce sont des informations structurelles, et c'est pour cela qu'elles ne sont pas associées à un nombre de jeton. C'est là le rôle d'un marquage.
Lorsque l'on fait let m = someTransition.fire(from: ...)!
, on obtient le marquage après tir de la transition someTransition
. m
est une instance de PTMarking
, c'est-à-dire un marquage. Tu peux soit print
le marquage directement, pour obtenir le nombre de jetons dans chaque place, ou alors sélectionner au préalable une place en particulier en utilisant un subscript (i.e. m[place]
).
N'oublie pas que et Transition.fire(from:)
et PTMarking.subscript(:)
retournent des valeurs optionnelles. Il te faudra donc les unwrap, faute de quoi Swift refusera de compiler ton programme ou au mieux émettra un warning à l'appel de print
.
let p0 = ...
let p1 = ...
let t0 = ...
let m0 = t0.fire(from: [p0: 1, p1: 2])
print(type(of: m0))
// "PTMarking?"
// Unwrapping with a `if let ...` test
if let m1 = t0.fire(from: [p0: 1, p1: 2]) {
// Forced-unwrapping with `!`
print(m1[p0]!)
}
Comment peut-on récupérer afficher le nombre de jetton après chaque état...
J'avais dans l'dée de faire :
print("\(taskPool) et \(processPool)")
Mais ça affiche le nom et non la valeur. Comment récupérer la valeur après chaque exécution de transitions ?