Проверьте значение в Dict
Пытаясь проверить ценность фруктов
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"
Я не знаю, как добраться до хорошей фруктовой опоры или как там ее в Элме.
1 ответ
Решение
Первый, 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, в котором показан код в действии.