scala – 条件在map功能
发布时间:2020-12-16 19:01:34 所属栏目:安全 来源:网络整理
导读:在 Scala里有什么吗 condition ? first_expression : second_expression; 我可以在scala中使用map功能吗? 我想要写这样的东西: val statuses = tweets.map(status = status.isTruncate? //do nothing | status.getText()) 如果内联函数不可行,那么我如何在
在
Scala里有什么吗
condition ? first_expression : second_expression; 我可以在scala中使用map功能吗? val statuses = tweets.map(status => status.isTruncate? //do nothing | status.getText()) 如果内联函数不可行,那么我如何在地图内写一个条件? 解决方法
那个?运算符,有时称为三进制运算符在Scala中不是必需的,因为它被定义为if-else表达式:
val x = if (condition) 1 else 2 要在map中使用,可以使用flatMap,然后在if-else的任一侧返回一个Option.由于Option可以隐式转换为Iterable,所以效果是列表被压缩,Nones被过滤: val statuses = tweets.flatMap(status => if (status.isTruncate) None else Some(status.getText)) 这相当于使用地图,然后平铺: val statuses = tweets.map(status => if (status.isTruncate) None else Some(status.getText)).flatten 更惯用地,您可以使用collect,这允许您使用部分功能一步进行过滤和映射: val statuses = tweets.collect { case status if !status.isTruncate => status.getText } 您还可以使用过滤器和地图在两个步骤中执行此操作: val statuses = tweets.filterNot(_.isTruncate).map(_.getText) 这里的缺点是这将遍历列表两次,这可能是不受欢迎的.如果您使用视图,则可以使用相同的逻辑,只能遍历列表一次: val statuses = tweets.view.filterNot(_.isTruncate).map(_.getText) (编辑:李大同) 【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容! |
相关内容
- 使用AngularJS/jQuery分离DOM树
- angularjs – 向Rails API发送带有参数的角度请求
- angularjs – Angular TypeError:无法在字符串”上创建属性
- scala – 是否可以创建一个可以用作T [A,B]的泛型类型T [A
- shell – 如何在unix中的每一行的末尾添加文本
- Bootstrap-table使用footerFormatter做统计列功能
- bash脚本错误[:!=:一元运算符
- 如何从angularjs表单中获取日期值
- NuSOAP webservice接口使用详解
- 利用resteasy框架构建rest webservice----第二波:使用不同