小编mcm*_*xvi的帖子

有条件地设置对象属性

是否有一些基于条件设置属性的语法?

data: {
    userId: 7,
    actionId: 36,
    express: (myCondition ? true : null) // does not work
}
Run Code Online (Sandbox Code Playgroud)

我想要express设置为一个值或根本不设置(即,应该没有命名的键express),并且在定义之后没有额外的语句.我知道我可以使用它作为布尔值,但接收方正在使用isset()支票,我想知道我是否可以避免修改它.


编辑:似乎没有直接解决问题的方法如上所述.以下是密切的建议:

JSON.stringify(Chris Kessel,dystroy):

var json = JSON.stringify( {
    data: {
        userId: 7,
        actionId: 36,
        express: (myCondition ? true : null)
    }
});
Run Code Online (Sandbox Code Playgroud)

一个匿名函数(Paulpro):

var data = new function(){
    this.userId = 7;
    this.actionId = 36;
    myCondition && (this.express = true);
};
Run Code Online (Sandbox Code Playgroud)

额外声明(x4rf41):

data: {
    userId: 7,
    actionId: 36
}
if(myCondition) data["express"] = …
Run Code Online (Sandbox Code Playgroud)

javascript

42
推荐指数
4
解决办法
4万
查看次数

防止ndk-build自动清理模块

在我当前的设置(ndk r8c)ndk-build执行一个干净的步骤(V=1显示rm在行动中)而不clean显式发布.我想改变这种行为 - 我目前有链接问题和(重新)编译需要超过5分钟.我怎样才能做到这一点?

android android-ndk android-build

6
推荐指数
1
解决办法
750
查看次数

使用单个协程实现有限状态机

我正在寻找实现FSM的方法,这导致我第一次遇到协同程序.

我看到几个例子(这里,这里这里)暗示一个状态机可以由一个协程实现.然而,我注意到所有这些机器的共同点是,除了循环之外,它们是树 - 也就是说,从起始节点到每个其他节点都有一条路径(不包括循环) - 并且很好地映射到分层控制嵌套ifs 提供的流程.我正在尝试建模的状态机至少有一个状态,从起始节点到它有多条路径(如果循环被消除,它是一个有向无环图).我无法想象什么样的控制流(除了gotos)可以实现这一点,或者它是否可能.

或者,我可以使用单独的协程来处理每个状态并屈服于某种调度程序协程.但是,我认为在此设置中使用协同程序而不是常规函数没有任何特别的好处.

这是一个我在建模时遇到问题的简单状态机:

A --'a'--> B
A --'b'--> C
B --'a'--> C
B --'b'--> A
C --'a'--> A
C --'b'--> B
Run Code Online (Sandbox Code Playgroud)

这是我到目前为止所拥有的.最后的实现将使用Boost在C++中,但我使用Python进行原型设计.

#!/usr/bin/python3

def StateMachine():
    while True:
        print("  Entered state A")
        input = (yield)
        if input == "a":
            print("  Entered state B")
            input = (yield)
            if input == "a":
                # How to enter state C from here?
                pass
            elif input == "b":
                continue
        elif …
Run Code Online (Sandbox Code Playgroud)

state-machine fsm coroutine

5
推荐指数
1
解决办法
2511
查看次数