JSRUN 用代码说话

输入和输出

编辑教程

输入和输出

前面的所有例子都是静态的。在本章中,我们将学习与用户动态通信。我们将学习Haskell中使用的不同输入和输出技术。


文件和流

到目前为止,我们对程序中的所有输入进行了硬编码本身。我们一直在从静态变量中获取输入。现在,让我们学习如何从外部文件中读取和写入。

让我们创建一个文件并将其命名为"abc.txt"。接下来,在此文本文件中输入以下行:"欢迎使用Tutorialspoint。在这里,您将获得学习Haskell的最佳资源。"

接下来,我们将编写以下代码,在控制台上显示此文件的内容。在这里,我们使用readFile()函数读取文件,直到找到EOF字符。

 main = do 
 let file ="abc.txt"
内容<  -  readFile文件
 putStrLn内容

上面的代码将读取文件"abc.txt"作为String,直到遇到任何End of File字符。这段代码将生成以下输出。

欢迎使用Tutorialspoint 
在这里,您将获得学习Haskell的最佳资源。

观察终端上打印的内容是否写入该文件。


命令行参数

Haskell还提供了通过命令提示符操作文件的工具。让我们回到终端并输入"ghci"。然后,键入以下命令集−

 let file ="abc.txt"
 writeFile file"我只是在试验这里。" 
 readFile文件

这里,我们创建了一个名为"abc.txt"的文本文件。接下来,我们使用命令 writeFile 在文件中插入了一个语句。最后,我们使用命令 readFile 在控制台上打印文件的内容。我们的代码将生成以下输出−

 我只是在这里进行实验。

异常

异常可被视为代码中的错误。这是编译器在运行时没有获得预期输出的情况。像任何其他优秀的编程语言一样,Haskell提供了一种实现异常处理的方法。

如果您熟悉Java,那么您可能知道我们通常会抛出错误的Try-Catch块在 catch 块中捕获相同的内容。在Haskell中,我们也有相同的函数来捕获运行时错误。

try 的函数定义看起来像"try :: Exception e => IO a - > IO(要么是ea)"。看一下下面的示例代码。它显示了如何捕获"除以零"异常。

 import Control.Exception 
 main = do 
 result<  -  try(evaluate(5`div` 0)):: IO(SomeException Int)
结果
左前 - > putStrLn $"Caught exception:"++ show ex 
 Right val  - > putStrLn $"答案是:"++ show val

在上面的例子中,我们使用了内置的 try 函数 Control.Exception 模块,因此我们预先捕获异常。上面的代码将产生屏幕下方的输出。

捕获异常:除以零
JSRUN闪电教程系统是国内最先开创的教程维护系统, 所有工程师都可以参与共同维护的闪电教程,让知识的积累变得统一完整、自成体系。 大家可以一起参与进共编,让零散的知识点帮助更多的人。
X
支付宝
9.99
无法付款,请点击这里
金额: 0
备注:
转账时请填写正确的金额和备注信息,到账由人工处理,可能需要较长时间
如有疑问请联系QQ:565830900
正在生成二维码, 此过程可能需要15秒钟