나는 스칼라를 배우기 시작했으며, 아마도 나는 조금 야심적이다. String
을 String
에서 Boolean
까지의 함수로 매핑하고 싶습니다. 불행히도 필자는 컴파일러에서 얻은 피드백을 실제로 이해하지 못합니다. 내가 Option
을 얻는 이유는, 유일한 방법은 기능에 액세스 할 수 있다는 것입니다 모든스칼라 함수 맵
class StdRead {
def read(key : Array[Int], value : Array[Int],seperator : Array[Char],
filter : Map[Int, String => Boolean], write : String => Unit) {
for(ln <- stdin.getLines) {
val inarr = ln split seperator
for(i <- key) {
val func = filter get i //func : Option[(String) => Boolean]
val f = func getOrElse Unit //f : java.lang.Object
val res = func(inarr(i)) //Error, doesn't work
}
//more stuff
}
}
먼저, 다음은 코드입니다. 둘째, getOrElse가 객체로 반환되는 이유는 무엇입니까? 그 함수를 호출하는 데 사용할 수 있어야하는 것은 아닌가? 누군가 제가 여기서해야 할 일에 대해 간단한 예를 들어 줄 수 있다면 좋을 것입니다.
미리 감사드립니다.
btw, "sepArator"가 아니라 "sepArator"입니다. –
@ DanielC.Sobral 어떤 사람들은 다른 문화를 가지고 있습니다. 그리고 나는 여러분의 문화가 진정한 민족주의라고 주장하는 것은 매우 민족 중심적이라고 생각합니다. OP와 마찬가지로, 나는 A 형태보다 때때로 E 형태를 사용하는 문화이기도합니다. – bharal
@bharal 그런 식으로 생각하면 죄송합니다. 나는 "seperator"를 올바른 철자로 보여주는 사전을 찾을 수 없었다. 정직한 철자법 실수에 대해 다른 사람들이 철자를 개선하는 데 도움이되지 않는 이유는 없습니다. 다른 사람들을 돕기 위해 나를 괴롭히는 대신에, 당신은 문화의 실제 예를 그 철자와 참고 문헌으로 제공하여 도움을 받아야합니다. 실제로 이것은 당신의 실수 대신에 당신의 문화에 대한 철자법입니다. –