任何人都可以是很清楚的用例解释的目的dispatch_sync
在GCD
为?我无法理解我必须使用它的地点和原因.
谢谢!
我有两个相同类型的实例化案例类.
case class Foo(x : Option[String], y : Option[String], z : Option[String])
Run Code Online (Sandbox Code Playgroud)
让我们调用实例化的类A和B.
val a = Foo(x=Some("foo"), y=Some("bar"), z=Some("baz"))
val b = Foo(x=None, y=Some("etch"), z=None)
Run Code Online (Sandbox Code Playgroud)
我想知道是否可以通过一般操作在单个操作中用B更新案例类A.
val c = b *oper* a // produces Foo(x=Some("foo"), y=Some("etch"), z=Some("baz"))
Run Code Online (Sandbox Code Playgroud)
参数设置为无忽略.理想情况下,操作也应该是通用的,因此它可以作用于任何类型的案例类.
我有一些直觉,可以通过先将类转换为元组/列表并在操作完成后转换回类来使用Scalaz来实现这一点 - 也许使用ApplicativeBuilder?我是否以正确的方式思考这个问题?有任何想法吗?
我有一个关于Slick/Scala的有趣问题,我希望你们中的一个好伙伴可以帮助我.
我在SLICK案例类中有几个表格和扩展名
case class A(...)
case class B(...)
case class C(...)
Run Code Online (Sandbox Code Playgroud)
分享这些共同领域
(id: String, livemode: Boolean, created: DateTime, createdBy : Option[Account]) .
Run Code Online (Sandbox Code Playgroud)
因为在每个案例类中都重复这些字段,所以我想探索将它们提取到单个对象或类型中的可能性.
但是,在创建SLICK表对象时,我希望最终包含这些公共字段的位置,以便我可以在每个表中保留它们各自的值.
object AsTable extends Table[A]("a_table") {
...
def id = column[String]("id", O.PrimaryKey)
def livemode = column[Boolean]("livemode", O.NotNull)
def created = column[DateTime]("created", O.NotNull)
def createdBy = column[Account]("created_by", O.NotNull)
...
}
Run Code Online (Sandbox Code Playgroud)
实际上,我正在寻找的最终结果是允许我更改公共字段而无需更新每个表.
有没有办法做到这一点?
提前致谢
你会如何在SLICK写这个查询?
DB.withSession {
implicit session =>
Tokens.where(_.expirationTime < DateTime.now ).delete
}
Run Code Online (Sandbox Code Playgroud)
DateTime.now的类型为org.joda.time.DateTime
和_.expirationTime是相同类型的类型映射列.
我收到这个错误
[error] UserService.scala:80: value < is not a member of scala.slick.lifted.Column[org.joda.time.DateTime]
[error] Tokens.where(_.expirationTime < DateTime.now ).delete
[error] ^
[error] one error found
Run Code Online (Sandbox Code Playgroud)
现在使用此表单中的查询.
我有一个看起来像这样的文件列表:
输入
/foo/bar/baz/d4dc7c496100e8ce0166e84699b4e267fe652faeb070db18c76669d1c6f69f92.mp4
/foo/baz/bar/60d24a24f19a6b6c1c4734e0f288720c9ce429bc41c2620d32e01e934bfcd344.mp4
/bar/baz/foo/cd53fe086717a9f6fecb1d0567f6d76e93c48d7790c55e83e83dd1c43251e40e.mp4
Run Code Online (Sandbox Code Playgroud)
我想从路径中分割出文件名,同时保留两者.
产量
['/foo/bar/baz/', 'd4dc7c496100e8ce0166e84699b4e267fe652faeb070db18c76669d1c6f69f92.mp4']
['/foo/baz/bar/', '60d24a24f19a6b6c1c4734e0f288720c9ce429bc41c2620d32e01e934bfcd344.mp4']
['/bar/baz/foo', 'd53fe086717a9f6fecb1d0567f6d76e93c48d7790c55e83e83dd1c43251e40e.mp4']
Run Code Online (Sandbox Code Playgroud)
怎么会这样呢?
谢谢!