是否有可能在Scala中创建一个类型别名(或类似的东西),它接受两个参数并返回它们的常见超类型?换句话说,我正在尝试使用此签名找到一些东西:
type CommonSupertype[A, B] // can't be more specific
Run Code Online (Sandbox Code Playgroud)
这些都适用:(伪代码)
CommonSupertype[String, Int] = Any
CommonSupertype[JButton, JPanel] = JComponent
Run Code Online (Sandbox Code Playgroud)
等等
我自己无法找到它,但我不能使用其他替代参数,因为我必须遵循预先指定的接口.
似乎scala的解析器组合器不会回溯.我有一个语法(见底部),无法正确解析以下"stmt":
copy in to out .
Run Code Online (Sandbox Code Playgroud)
这应该很容易用回溯解析:
stmt: (to out(copy in))
Run Code Online (Sandbox Code Playgroud)
还是我错过了什么?
分析器:
type ExprP = Parser[Expr]
type ValueP = Parser[ValExpr]
type CallP = Parser[Call]
type ArgsP = Parser[Seq[Expr]]
val ident = "[a-zA-Z\\+\\-\\*/%><\\\\\\=]+".r
val sqstart = "\\[" .r
val sqend = "\\]" .r
val del = "," .r
val end = "\\." .r
def stmt: ExprP = expr <~ end
def expr: ExprP = ucall | call | value
def value: ValueP = ident ^^ {str => IdentExpr(str)}
def call: …Run Code Online (Sandbox Code Playgroud) (它在FF中工作)我如何使用CSS删除访问链接的下划线?我试过了:
a:visited {
color: rgb(255, 255, 255);
text-decoration: none !important;
}
Run Code Online (Sandbox Code Playgroud)
和
a:visited {
color: rgb(255, 255, 255);
text-decoration: none;
}
Run Code Online (Sandbox Code Playgroud)