gpt4 book ai didi

scala - 为 Scala SeqLike 实现 containsAny 的惯用方法

转载 作者:行者123 更新时间:2023-12-04 17:23:32 25 4
gpt4 key购买 nike

斯卡拉的 SeqLike实现一个方法 contains .我怎样才能干净利落地实现 containsAny特征?

假设我想知道是否有一个字符串 string包含 blacklist 中的任何列入黑名单的字符:

val blacklist = List("(", ")", "[", "]", "{", "}", "<", ">")
string containsAny blacklist

干净地实现第二行的最佳方法是什么?

到目前为止,我的版本是这样的:
(blacklist.view map string.contains) contains true

最佳答案

最好的办法是将黑名单设置为一组。

val blacklist = "()[]{}<>".toSet

现在您可以使用 exists查找您的字符串中是否存在任何这些字符。自 Set[T]扩展 T => Boolean ,您可以直接使用该集合,而不必编写显式条件。
scala> "I like fish (but not herring)" exists blacklist
res1: Boolean = true

scala> "I like fish, especially salmon!" exists blacklist
res2: Boolean = false

(注意:注意字符串 "I am a string" 和字符: 'c' 的区别。单字符的字符串是字符串,不是字符。)

关于scala - 为 Scala SeqLike 实现 containsAny 的惯用方法,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/15588442/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com