0

Argonaut クイックスタートからこの簡単な例を試しています。

case class Address(street: String, number: Int, postcode: Int)

object Address {
  // Define codecs easily from case classes
  implicit def AddressCodecJson: CodecJson[Address] =
    casecodec3(Address.apply, Address.unapply)("street", "number", "post_code")
}

でコンパイル エラーが発生しcasecodec3ます。私は、アルゴナウトと scalaz リポジトリのクローンを作成し、ソースを grep しましたが、それはサンプル コードでしかわかりません。そのシンボルはどこから来たのですか?なぜ使用できないのですか?

4

1 に答える 1

1

インポートが順調であれば、それはうまくいくはずです:

import argonaut._, Argonaut._
case class Address(street: String, number: Int, postcode: Int)

object Address {
  implicit def AddressCodecJson: CodecJson[Address] =
  casecodec3(Address.apply, Address.unapply)("street", "number", "post_code")
}

REPL では、必ず貼り付けモードに入ってください。

scala> :paste 
// Entering paste mode (ctrl-D to finish)

import argonaut._, Argonaut._
case class Address(street: String, number: Int, postcode: Int)

object Address {
  implicit def AddressCodecJson: CodecJson[Address] =
  casecodec3(Address.apply, Address.unapply)("street", "number", "post_code")
}

// Exiting paste mode, now interpreting.

defined class Address
defined object Address

GeneratedCodecJsons.scalaソースは、たとえばここのビルドで定義されているように 生成されるため、github にはソースが表示されません。 https://github.com/argonaut-io/argonaut/blob/master/project/Boilerplate.scala

于 2015-01-11T23:26:29.293 に答える