在班级中保存文件或频道的良好做法

Posted

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了在班级中保存文件或频道的良好做法相关的知识,希望对你有一定的参考价值。

在下面的代码中,我试图创建一个类,当通过方法询问时,该类可以写入日志文件。在这里,我想知道这是否是用于此目的的惯用方法,或者可能是更推荐的方式,例如,持有单独的file类型字段(由于某种原因)?换句话说,即使我只持有channel类型,它是否真的没有问题?

class Myclass {
    var logfile: channel;

    proc init() {
        writeln( "creating log.out" );
        logfile = openwriter( "log.out" );
    }
    proc log( x ) {
        logfile.writeln( x );
    }
}

proc main() {
    var a = new borrowed Myclass();
    a.log( 10 );
    a.log( "orange" );
}
答案

我相信你在这里所做的是合理的。 Chapel中文件和通道之间的区别主要是为了支持语言的并行计算主题,以便支持让多个任务使用不同的通道同时访问单个逻辑文件(本质上是对文件的视图)。在像您这样的情况下,您创建的通道下面有一个文件,但如果您不需要与它进一步交互,则无需显式存储它。

所以我相信简单地存储一个频道没有实际问题。

以上是关于在班级中保存文件或频道的良好做法的主要内容,如果未能解决你的问题,请参考以下文章

将对象保存到数据库的良好做法 [关闭]

无法将我的班级的 NSMutableArray 保存到文件(IOS)

清理堆分配对象的良好做法或约定?

我在哪里更改此 Python 代码片段以将临时文件保存在 tmp 文件夹中?

Python处理Excel中数据3 (按照班级筛选数据_把数据保存在一个文件的各个sheet中)

代码适用于与单个 html 文件不同的堆栈片段