我所知道的TypeTags就是他们以某种方式取代了Manifest.互联网上的信息很少,并没有让我对这个主题有很好的认识.
所以,如果有人在TypeTag上分享了一些有用的资料,包括例子和流行的用例,我会很高兴.我们也欢迎详细的解答和解释.
除了在JVM上与动态语言集成之外,还有像Scala这样的静态类型语言中Dynamic类型的其他强大用途是什么?
有没有办法定义一个dsl,这将允许以下形式?
variable identifier identifier variable
Run Code Online (Sandbox Code Playgroud)
例如:
1 equals to 2
Run Code Online (Sandbox Code Playgroud)
我知道如何创建一个更简单的形式:1 equals to (2)但我想避免使用括号.有办法吗?
我有一个基本的枚举类型货币,这将包括所有交易的主要货币如EUR,USD,JPY,等这段代码我可以写或产生一次。不过,我也想对所有货币对强劲枚举类型的组合如EURCHF,USDCHF等有Scala中的任何条款,让我建立这样一个动态派生枚举类型?我也可以用一些外部的脚本生成器来做……但我想知道是否有可能。
object Ccy extends Enumeration {
type Type = Value
val USD = Value("USD")
val CHF = Value("CHF")
val EUR = Value("EUR")
val GBP = Value("GBP")
val JPY = Value("JPY")
}
object CcyPair extends Enumeration {
type Type = Value
// ??? Ccy.values.toSeq.combinations(2) ...
}
Run Code Online (Sandbox Code Playgroud)
UPDATE使用接受的答案作为参考,这是我的解决办法实现:
import scala.language.dynamics
object CcyPair extends Enumeration with Dynamic {
type Type = Value
/*
* contains all currency combinations including the symmetric AB …Run Code Online (Sandbox Code Playgroud)