복붙노트

[SCALA] 스칼라에서 가변 길이 인수를 사용하여

SCALA

스칼라에서 가변 길이 인수를 사용하여

나는 가변 길이 인수하는 방법을 정의하는 방법을 알고 :

  case class taxonomy(vocabularies:(String,Set[String])*)

클라이언트 코드는 매우 깨끗합니다 :

  val terms=taxonomy("topics"->Set("economic","politic")
                   ,"tag"->Set("Libya","evolution")
                   )

하지만 난 변수가있을 때이 같은 (대신 변수의 순서로)이 경우 클래스를 사용하는 방법을 알고 싶어 :

val notFormattedTerms = Map("topics"->Set("economic","politic")
       ,"tag"->Set("Libya","evolution"))

해결법

  1. ==============================

    1.

    taxonomy(notFormattedTerms.toSeq:_*)
    

    로하십시오 여러 인수가 가변 길이 메서드에 전달 된 것처럼 보이는 있도록 _ * ​​당신은 사실상 일련의 인수를 변환. 이 변환은, 그러나,뿐만 아니라지도를 위해,이 경우처럼 (주문?) 간단한 시퀀스 유형에 대해 작동합니다. 따라서, 하나는 전에 명시 적 toSeq을 사용해야합니다.

  2. from https://stackoverflow.com/questions/5079845/using-variable-length-argument-in-scala by cc-by-sa and MIT license