我想将不同的html部分拆分成自己的类,现在我不明白这个代码的一件事(-snippet):
SELECT CONCAT_WS(', ', IFNULL(column1, NULL),
IFNULL(column2, NULL), IFNULL(column3, NULL),
IFNULL(column4, NULL), IFNULL(column5, NULL))
FROM yourtable
工作正常。
所以:
val z = for(a <- 0 to 5) yield div(s"$a")
body(h1("Testing stuff"), z)
不的作用是什么:
body(h1("Testing stuff"), test)
private def test = for(a <- 0 to 5) yield div(s"$a")
class Test[Builder, Output <: FragT, FragT](val bundle: scalatags.generic.Bundle[Builder, Output, FragT])
{
import bundle.all._
def render = for(a <- 0 to 5) yield div(s"$a")
}
这不会编译。它说(删除val test = new Test(scalatags.Text)
body(h1("Testing stuff"), test.render)
后)
{报价} 类型不匹配,预期:修改器[Builder],实际:IndexedSeq [test.bundle.all.Div.Self] {引用}
我根本不明白为什么。是否有一些隐含的魔法?可以启发我并告诉我它是如何完成的吗?
修改
进一步澄清我和@Owen的代码之间的区别:
在另一个类中(我初始化一个新的h1()
)我也导入Test
(从相同的基础派生),但不导入bundle.all.all_
。所以在第二个包中似乎有一些涉及转换的含义。 (虽然我还没有找到它们。)
我发现,当我将scalatags.Text.all._
作为捆绑包传递时,这与import bundle.all._
不一样很有趣。
答案 0 :(得分:1)
您的代码编译好我。这是我编译的完整代码:
object TagTest1 {
class Test[Builder, Output <: FragT, FragT](val bundle: scalatags.generic.Bundle[Builder, Output, FragT]) {
import bundle.all._
def render = for(a <- 0 to 5) yield div(s"$a")
}
{
import scalatags.Text.all._
val test = new Test(scalatags.Text)
body(h1("Testing stuff"), test.render)
}
}