다음 열거 형을 사용합니다.스칼라 : 동적 계약을 인수로 사용하는 함수
object Smth extends Enumeration {
class Value(name: String, func: (String, Int) => Boolean) extends super.Val(name)
private def opA(index: Int) : Boolean ={
index > 0
}
private def opB(x: String, index: Int) : Boolean ={
index > 0 && x.length > 0
}
val x = new Value("X", opA) // type mismatch error for opA
val y = new Value("Y", opB)
}
열거 생성자 형식 (String, Int) => Boolean
의 인수로하는 함수 걸린다. 가능은 예를 들어, 2 별개의 계약으로 기능을 수락하는 방식으로 열거 생성자를 만드는 것입니다 :
(String, Int) => Boolean
(Int) => Boolean
내가 함수 정의에서 인수에 대해 기본값을 사용하지 않도록 노력하고 있어요.
사용 방법입니다.
class Value(val name: String, val func: (String, Int) => Boolean) extends super.Val(name) {
def apply(name: String, func: (Int) => Boolean): Value =
new Value(name, (x -> func("default value", x)))
}
그냥 다른 생성자를 추가
– talex적용 메소드를 추가하면 class 값 (val name : String, val func : (String, Int) => Boolean)은 super.Val (name)을 확장합니다. { def apply (name : String, func : (Int) = > 부울) required : (String, Int) => 부울' – tmp123
답변으로 제안을 게시 할 예정입니다. – talex