我在Elm中遇到了一个经常遇到的问题,其中我有一个函数依赖于多个Just值。有没有那么冗长的方法来编写此代码:

commandIf apples bananas oranges =
        case apples of
            Just apples_ ->
                case bananas of
                    Just bananas_ ->
                        case oranges of
                            Just oranges_ ->
                                someCommand apples_ bananas_ oranges_

                            Nothing ->
                                Cmd.none

                    Nothing ->
                        Cmd.none

            Nothing ->
                Cmd.none

最佳答案

如果您同时需要所有三个值,则可以将它们作为一个元组进行匹配,并将所有其他组合(当其中一个或几个是Nothing时)保留为后备情况:

commandIf apples bananas oranges =
  case (apples, bananas, oranges) of
    (Just apples_, Just bananas_, Just oranges_) ->
        someCommand apples_ bananas_ oranges_

    _ ->
        Cmd.none

关于functional-programming - 有没有更详细的方法来解开Elm中的值,我们在Stack Overflow上找到一个类似的问题:https://stackoverflow.com/questions/40600296/

10-13 00:13