このプログラミング構文で何が起こっているのかを見つけるために、インターネットの多くの場所やコミュニティを検索しました。
このコードのガイダンスを必死に求めています。
これらの特定の宣言では、コンパイラで何が起こっていますか?
transitions[prev]?[transition]
transitions[state]?[transition] != nil
これがクラスの宣言方法です
public final class StateMachine<State: Hashable, Transition: Hashable>
これが変数です
public var state: State
private var transitions = [State:[Transition:State]]()
そして、これらは例です:
最初の状況 - トランジションで何が起こっているか[前]?[トランジション]
public final func advance(transition: Transition, observe: Observer? = nil) -> State { let prev = state if let next = transitions[prev]?[transition], next != prev { state = next observe?(prev, next) } return state
2 番目の状況 - return transitions[state]?[transition] != nil で何が起こっているか
public final func canAdvance(transition: Transition) -> Bool { return transitions[state]?[transition] != nil }
私が理解したいのはそれだけです。これらの瞬間に何が起こっていますか?