鉴于:
import shapeless._
case class F(x: Option[Int], y: Option[Int])
我想帮你写一个函数,f:
def f(Option[Int]::Option[Int]::HNil):字符串
这样,每个选项[Int]
被替换为一些数字或空的;和HNil的。
例子:
val res7 = Generic[F].to( F( Some(42), None) )
//res7: shapeless.::[Option[Int],shapeless.::
[Option[Int],shapeless.HNil]] = Some(42) :: None :: HNil
f(res7) === "42empty"
如何编写f?
您需要一个多边形:
object OptFolder extends Poly2{
def conv(x: Option[Int]) = x.map(_.toString).getOrElse("empty")
implicit val ff = at{ (y: String, z: Option[Int]) => y + conv(z) }
}
val lala: String = myHlist.foldLeft("")(OptFolder) //:String not required
因此,将一个泛型
转换为
HList
,然后是一个具有定义良好的
多边形的
foldLeft
。
Collapsibles 是可折叠元素,扩大时,点击。他们允许您隐藏不立即与用户相关的内容。 气孔 创建一个气孔式可折叠组件,只要增加类 popout。 <ul class="collapsible popout" data-collapsible="accordion"> 可折叠组件的 HTML 结构 <ul class="collapsible" data-collapsible="accor
如果你仅仅希望看到你所处理的代码文件的结构概览,折叠会是个非常有用的工具。折叠可以隐藏像函数和循环这样的代码块,来简化你屏幕上显示的东西。 当你把鼠标移到数字栏上,你就可以点击显示的箭头来折叠代码段。你也可以使用快捷键alt-cmd-[和alt-cmd-]来折叠和展开代码段。 使用alt-cmd-shift-{来折叠所有代码段,使用alt-cmd-shift-}来展开所有代码段。你也可以使用cmd
zf数字 创建折叠,数字参数为折叠行数 zo 打开折叠 zc 关闭折叠 zd 删除折叠 :set foldcolumn=4 显示折叠树 :mkview 保存折叠 :loadview 读取折叠 zr 打开同一层级所有折叠 zm 关闭同一层级所有折叠 zO 打开某一行的所有层级折叠 zC 关闭某一行的所有层级折叠 zR 打开所有折叠 zM 关闭所有折叠 :set foldclose=all 光标离开折
主要内容:实例,实例,用法,选项,方法,实例,事件,实例折叠(Collapse)插件可以很容易地让页面区域折叠起来。无论您用它来创建折叠导航还是内容面板,它都允许很多内容选项。 如果您想要单独引用该插件的功能,那么您需要引用 collapse.js。同时,也需要在您的 Bootstrap 版本中引用 Transition(过渡)插件。或者,正如 Bootstrap 插件概览 一章中所提到,您可以引用 bootstrap.js 或压缩版的 bootstr
主要内容:实例,实例,实例,实例Bootstrap4 折叠可以很容易的实现内容的显示与隐藏。 实例 <button data-toggle="collapse" data-target="#demo">折叠</button> <div id="demo" class="collapse"> Lorem ipsum dolor text.... </div> 实例解析 .collapse 类用于指定一个折叠元素 (实例中的 <di
Bootstrap折叠板插件允许你在网页中用一点点JavaScript以及CSS类切换内容。它是一个灵活的插件,使用少量的类(来自必需的过渡插件),以方便切换行为。 示例 点击下面的按钮,利用类的改变,显示或隐藏另一个元素: .collapse 隐藏内容 .collapsing 在过渡过程中应用到 .collapse.in 显示内容 你可以使用带href属性的链接,或者使用带data-target