http://woss.name/2012/04/02/retrieving-bigdecimals-from-a-database-with-anorm-scala/このScalaの例でチルダ(〜)は何を意味していますか?
object Site {
val allFieldsParser = {
get[Pk[Long]]("sites.id") ~ // Help me parse this syntax
get[String]("sites.name") ~
get[BigDecimal]("sites.latitude") ~
get[BigDecimal]("sites.longitude") map {
case id ~ name ~ latitude ~ longitude =>
Site(id, name, latitude, longitude)
}
}
def findAll(): Seq[Site] = {
DB.withConnection { implicit connection =>
SQL("SELECT * FROM sites").as(Site.allFieldsParser *)
}
}
}
この表記はパーサーコンビネータから得られたものです。つまり、http://stackoverflow.com/questions/6818390/understanding-the-tilde-in-scalas-parser-combinatorsを見てください。つまり、あなたは精神的に '〜'を '&'に置き換えることができます。そのような構造はパターン(あなたは、正規表現のパターンのように知っています)。あなたは、特定のパーツを使用して高レベルの表現を定義しています(〜のソリッド構造に結合されています)。そして、パーサーのいずれかが成功し、あなたのスキームに従って構造が得られないか、失敗します。例えば、代数式を照合するには 'Number〜Operation〜Number ...のようなものを書くことができます' –
@ om-nom-nomだから、なぜあなたはコメントで答えましたか? –
@ DanielC.Sobral私は質問が技術的な実装(すでにgzm0によって説明されていたかどうか)または意味論的なものかどうかは不明です。 –