如何使用RIO库将内容打印到stdout

人们在使用RIO库时如何将内容打印到stdout?

我已经阅读了有关RIO github的讨论:

https://github.com/commercialhaskell/rio/issues/5#issuecomment-355061756

但找不到解决方案。

yjyhp5211314 回答:如何使用RIO库将内容打印到stdout

标准方法是使用logging functions

#!/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"

还有更多detailed documentation on rio here

本文链接:https://www.f2er.com/3160995.html

大家都在问