gpt4 book ai didi

scala - 将一组函数应用于对象的语法

转载 作者:行者123 更新时间:2023-12-01 08:17:34 25 4
gpt4 key购买 nike

我试图在 Scala 中找出正确的语法来将一组函数应用于一个对象。说我有一个类:

class MiTestClass {
def isValid() : Bool = {...}
def isGreen() : Bool= {...}
def isYellow() : Bool = {...}
}

然后我创建了一个新对象 val miTestObj = new MiTestClass现在我想将一部分方法应用于我的对象,例如
val conditions:List[MiTestClass => Boolean] = List(_.isGreen, _.isYellow)

并执行一些操作,例如检查所有属性是否成立
val result:Bool  = resultOfApplyingFunctions.foldLeft(true)(and)

获得此类功能的语法是什么?在 Haskell 中,你会写一些类似的东西
map (\f -> f miTestObj) conditions

但我无法正确使用 Scala 语法

最佳答案

scala> val conditions: List[MiTestClass => Boolean] = List(_.isGreen, _.isYellow) 
conditions: List[(MiTestClass) => Boolean] = List(<function1>, <function1>)

scala> val obj = new MiTestClass
obj: MiTestClass = MiTestClass@3dc049d

scala> conditions.forall(_(obj))
res1: Boolean = false

scala> conditions.forall(f => f(obj)) // slightly more verbose way
res2: Boolean = false

关于scala - 将一组函数应用于对象的语法,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/6983044/

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