以Dict检查值

时间:2018-09-13 17:44:21

标签: elm

试图检查水果的价值

fruit =
  Dict.fromList
      [ ( 1, { fruitIsGood = False } )
      , ( 2, { fruitIsGood = False } )
      , ( 3, { fruitIsGood = True } )
      ]

whichFruitIsGood : Dict.Dict number { fruitIsGood : Bool } -> String
whichFruitIsGood fruit =
    case get 0 fruit of
        Nothing ->
            Debug.crash "nothing found"

        Just fruit ->
            if fruit.fruitIsGood == True then
                "Apple"
            else
                "I hate Fruit"

我不知道如何获得fruitIsGood道具或您在Elm中所说的任何东西。

1 个答案:

答案 0 :(得分:3)

首先,Debug.crash "nothing found"将不会为您提供任何有用的功能,而是返回nothing found字符串。

然后,您只需要修复编译器指出的错误即可。它们主要是关于变量的,这些变量被多次定义。让我们将第一个函数重命名为fruits

fruits =
  Dict.fromList
      [ ( 1, { fruitIsGood = False } )
      , ( 2, { fruitIsGood = False } )
      , ( 3, { fruitIsGood = True } )
      ]

第二个函数中还有一个变量:

whichFruitIsGood : Dict.Dict number { fruitIsGood : Bool } -> String
whichFruitIsGood fruit =
    case get 3 fruit of
        Nothing ->
            "nothing found"

        Just foundFruit ->
            if foundFruit.fruitIsGood == True then
                "Apple"
            else
                "I hate Fruit"

然后,您的代码将编译并返回nothing found

这里做了一些ellie-app example的修改,显示了正在执行的代码。