gpt4 book ai didi

swift - 在这种情况下,我无法理解字典中的快速语言问号运算符 transitions[prev]?[transition]

转载 作者:行者123 更新时间:2023-11-28 15:12:48 27 4
gpt4 key购买 nike

<分区>

我在 Internet 的很多地方和社区中进行了搜索,以了解这种编程语法到底发生了什么。

我正在拼命地寻求此代码中的指导。

编译器在这些特定声明中发生了什么?

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]]()

这些是例子:

  1. 第一种情况——转换中发生了什么[prev]?[transition]

    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. 第二种情况 - 返回转换中发生了什么[state]?[transition] != nil

    public final func canAdvance(transition: Transition) -> Bool {
    return transitions[state]?[transition] != nil
    }

这就是我想了解的全部内容。这些时刻发生了什么?

27 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com