gpt4 book ai didi

haskell - Haskell 中的类型安全 `read`

转载 作者:行者123 更新时间:2023-12-02 02:49:55 26 4
gpt4 key购买 nike

Learn You a Haskell讨论以下数据类型:

data Day = Monday | Tuesday | Wednesday | Thursday | Friday | Saturday | Sunday   
deriving (Eq, Ord, Show, Read, Bounded, Enum)

本书演示了如何使用 read将字符串解析为 Day类型。
$ read "Saturday" :: Day
Saturday

但是,我可以传入一个非 Day 值,从而导致异常。
$ read "foo" :: Day
*** Exception: Prelude.read: no parse

什么是类型安全的使用方式 read在上面的例子中?

最佳答案

除了旧标准功能 reads @JonPurdy 提到的,还有最近添加的

Text.Read.readMaybe :: Read a => String -> Maybe a

当字符串只包含一个要解析的值时,使用起来更简单。

关于haskell - Haskell 中的类型安全 `read`,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/23861884/

26 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com