haskell - 如何使用 RIO 库将内容打印到标准输出
问题描述
人们在使用 RIO 库时如何将内容打印到标准输出?
我已经阅读了 RIO github 上的讨论:
https://github.com/commercialhaskell/rio/issues/5#issuecomment-355061756
但找不到解决办法。
解决方案
标准方法是使用日志功能:
#!/usr/bin/env stack
-- stack --resolver lts-13.19 script
{-# LANGUAGE OverloadedStrings #-}
import RIO
main :: IO ()
main = runSimpleApp $ do logInfo "Hello World"
在执行它们时:
$ stack rio.hs
Hello World
您还可以使用logOptionsHandle将任何类型的传递Handle
给它(stdout
如果您希望在文件上进行日志记录,则包括文件句柄)并进行相应的配置。如果需要,您甚至可以使用 Prelude print
,但与上面的日志记录方法不同,它效率不高且不是线程安全的,这意味着它可能导致并发设置中的交错输出:
import Prelude (print)
import RIO
main :: IO ()
main = runSimpleApp $ do liftIO $ print "hello"
这里有关于 rio的更详细的文档。
推荐阅读
- laravel - Voyager 管理面板链接已损坏
- php - 如何通过索引 $sheet->getRowIterator() 获取行?
- bash - 将“tail -f”输出重定向到 COPY 命令
- html - 背景颜色拒绝在 Outlook 中应用
- javascript - Html 未按预期呈现 javascript 断线
- java - 交换可绘制图像的文本
- db2 - 如何根据一定的逻辑创建一个检索年份的函数
- swift - 如何将fileurl(swift)转换为编码的utf8 hex?
- python - Thonny IDE 在启动时抛出 AssertionError
- angular - 我应该使用“
标题已经说明了,我应该使用哪一个?有/有什么区别
<table mat table [dataSource]="items" ...
或者
<mat table [dataSource]="items" ...
在我的 HTML 标记中?
粗略一看,它们都工作得很好,但我认为一定有区别......