Google 검색을 시도했지만 괜찮은 forall
예제를 찾을 수 없습니다. 그것은 무엇을합니까? 부울 함수를 사용하는 이유는 무엇입니까?스칼라 예를 들어?
나를 참조하십시오 (Scaladoc 제외).
Google 검색을 시도했지만 괜찮은 forall
예제를 찾을 수 없습니다. 그것은 무엇을합니까? 부울 함수를 사용하는 이유는 무엇입니까?스칼라 예를 들어?
나를 참조하십시오 (Scaladoc 제외).
forall
메서드는 부울을 반환하는 p
함수를 사용합니다. forall
의 의미는 다음과 같이 말합니다. 컬렉션에있는 x
개마다 을 반환하면 p(x)
이 true입니다.
그래서 :
List(1,2,3).forall(x => x < 3)
의미 : 1, 2, 3과 달리, 3 미만일 false
이다 true
경우. 3 적어도 하나의있을 경우 true
를 반환 유사한 방법 exists
있다 이하 3.
보다 : 그것은 모든 요소가 3 미만이되는 경우가 있기 때문에이 경우, false
로 평가합니다 p(x)
이 참이되도록 컬렉션의 요소 x
이 참입니다.
그래서 :
List(1,2,3).exists(x => x < 3)
의미 : 1, 2, 3 중 적어도 하나는 3 개 미만, 그렇지 false
이다 true
경우. 이 경우, 일부 요소가 3보다 작은 경우이므로, true
으로 평가 될 것이다. 1이 3보다 작습니다.
Scala
스크립트를 사용하여이 기능으로 어떻게 재생할 수 있는지에 대한 간단한 예입니다.
는
println(args.forall(p => (p.equals("a"))))
와 myScript.scala
파일을 생성하고 폐쇄 내에서 더 많은 명령은 범위 변수에서 지정하는 예 실행할 수있는 기억
scala myScript.scala a a a // true
scala myScript.scala a b c // false
왜 REPL을 사용하지 않습니까? –
좋은으로 전화
def main(args: Array[String]){
var country = ""
var environment = ""
val isValid = args.sliding(2, 2).forall{
case Array("--env", value : String) => {
environment = value
Array("test", "staging", "prod").contains(value.toLowerCase())
}
case Array("--country", value : String) => {
country = value
Array("BE", "NL", "FR").contains(value.toLowerCase())
}
case _ => false
}
if(!isValid){
println ("Wrong usage. Please insert params in the following format: --country {NL,BE,UK,FR} --env {test, staging, prod}")
return
}
else
println (s"Correct usage. env=$environment country=$country")
}
http://www.scala-lang.org/api/current/scala/collection/immutable/List.html :'이 목록의 모든 요소에 대해 조건부가 사용되는지 여부를 테스트합니다. ' – MikkoP
생각 했으므로 혼란 스러울 수도 있습니다. 'foreach'의 기능을 대신 사용하십시오 (모든 요소를 반복합니다). –
예, foreach의 병렬 버전을 생각하고있었습니다. – Jus12