私は2つの値を持っています。私はこれらの2つの許可された組み合わせをチェックし、見つからなければデフォルトのアクションを実行したいと思います。私は何とかこれらの値の両方でスイッチ/ケースを行うことはできますか?私は複数のif/elseステートメント、またはビットマスクパターンに従う列挙型を避けたいと思っています。なぜなら、スイッチ/ケースのようにコードではあまりよくないと思うからです。 pythonを知っている人々のために複数の列挙値のスイッチ/ケース
、私は基本的にC++でこのPythonコードのためのソリューションたい:
val1 = "a"
val2 = 2
actions = {
("a", 1): func1,
("b" ,1): func2,
("a" ,2): func3,
("b" ,2): func4
}
action = actions.get((val1, val2), default_func)()
action()
それは音 – NathanOliver
だから私はかなりだけのマップと、Pythonで同じことを行いますペアと関数ポインタ? –
関数ポインタとラムダを混在させることができるように 'std :: function'を使うこともできます。 – NathanOliver