【发布时间】:2020-08-21 13:11:47
【问题描述】:
我有一个不同元素的列表,其中一个元素是类型选项。如何确定该位置是否有元素?我已经尝试将它包装在 Some() 函数中,但是,这不会让我知道是否有 None。
我有一个 cookie 订单的 csv 文件。我已正确拆分每一行(每个订单),创建了一个名为 Order 的案例类,但列表中的第三个条目包含可选的附加注释。我需要知道它是空的(无),还是一些并显示注释;格式为 some("whatever the order is") 或 None。
csv 文件中的每个条目都作为字符串输入到此函数中,
def process(string entry): Order,我把它做成 val 行,用 .split(,) 方法拆分,放入一个列表中。
val line = entry.split(",").toList
列表仍然是字符串。 Order的参数是string, string, Some[string]。
这是我尝试过的,但它没有显示 None。
val cookieOrder = Order(line(0), line(1), Some(line(2))
如果第三个元素没有,我对 Order 的预期结果是
"some string", "some string", None
分割前一行的例子是
"""牛奶,伦敦,"""
谢谢
【问题讨论】:
-
什么是
line?你能给我举个例子吗? - 在任何情况下,如果line是一个 List[Any],那么它就是代码异味。 -
line 是我的 csv 文件中的一行/条目。这是一个订单。以字符串形式输入(在参数中),但拆分为字符串、字符串、Option[string]
-
你是怎么拆分的?你是怎么把第三个元素变成一个Option的,最后如果它已经是一个选项为什么你需要把它转换成一个选项?
-
我实际上并没有将其拆分为选项,我只是将其拆分为字符串列表。我用 val line = entry.split(",").toList ; entry 是我用作参数的字符串。它是在创建 csv 文件时作为可选字段提供的,所以我想看看该字段中是否有任何内容。我的 Order 目标是字符串、字符串、选项
-
好的,请用所有这些细节和说明编辑您的问题,并将示例输入与预期输出放在一起。