小编Mil*_*bin的帖子

传递代替常春藤模块

我正在以编程方式使用Ivy(在SBT的上下文中),我需要能够使用兼容集替换一小组模块,这些模块具有不同的组织,但共享工件名称,修订等.

举一个具体的例子,我想替换,

org.scala-lang#scala-reflect;2.11.8
Run Code Online (Sandbox Code Playgroud)

用,

org.typelevel#scala-reflect;2.11.8
Run Code Online (Sandbox Code Playgroud)

依赖图中的任何地方.请注意,我只想添加对org.typelevel的依赖#scala-reflect; 2.11.8如果依赖于org.scala-lang #scala-reflect; 2.11.8在图中的某处(我不是提前知道),因此无条件地排除org.scala-lang模块并包含org.typelevel模块是不够的.

这可能吗?如果是的话,非常欢迎指向必要机制的指针.如果不是,那么对于变通方法的建议也会非常受欢迎.

scala ivy sbt

5
推荐指数
1
解决办法
229
查看次数

Doobie - 将任意效果提升到 ConnectionIO 中

我正在尝试在使用 Doobie 将用户插入数据库的同一事务中发送电子邮件。
我知道我可以举IOConnectionIO通过使用Async[ConnectionIO].liftIO(catsIO)其中catsIO: IO[String]
但在我的代码,我不上工作IO,我使用F与约束,例如F[_]: Async 于是我可以代替F我自己的单子进行测试。

是否可以在不直接使用类型的情况下以某种方式提升F[String]进入? ConnectionIO[String]IO

这是我为 IO 类型找到的答案:Doobie and DB access composition within 1 transaction

scala scala-cats doobie cats-effect

5
推荐指数
1
解决办法
1202
查看次数

Scala中类型不相等的证据

有没有办法约束一个方法,只有两种类型被证明相等才有意义?

trait Something[A, B] {
  // I can only be called if type A is the same as type B
  def ifEqual(implicit ev: A =:= B)

  // Now I cannot be called if type A is proven to be the same as type B
  def ifNotEqual(implicit ev: A ??? B)
}
Run Code Online (Sandbox Code Playgroud)

types scala implicits shapeless

4
推荐指数
1
解决办法
1015
查看次数

在使用无形类型不等式时,如何自定义Scala模糊隐式错误

def typeSafeSum[T <: Nat, W <: Nat, R <: Nat](x: T, y: W)
         (implicit sum: Sum.Aux[T, W, R], error: R =:!= _7) = x

typeSafeSum(_3, _4) //compilation error, ambiguous implicit found.
Run Code Online (Sandbox Code Playgroud)

我不认为错误信息"模糊隐含发现"是友好的,我怎么能自定义它说"2 NAT值的总和不应该等于7"

提前谢谢了

scala shapeless

4
推荐指数
1
解决办法
1379
查看次数

Scala - 使用泛型方法定义特征

如何在其方法中使用泛型参数定义特征,然后使用特定的类型参数覆盖?

一个例子:

import shapeless._

case class UserA(name:String)
case class UserB(name:String)

trait User {
  def save(item:Option[T]): Option[T]
}
class UserAdmin extends User {
  def save(item:Option[UserA]): Option[UserA]
}
class UserSomethingElse extends User {
  def save(item:Option[UserB]): Option[UserB]
}
Run Code Online (Sandbox Code Playgroud)

有了这个,我得到了错误,not found: type T即使它是无形的

generics scala

0
推荐指数
2
解决办法
1047
查看次数

标签 统计

scala ×5

shapeless ×2

cats-effect ×1

doobie ×1

generics ×1

implicits ×1

ivy ×1

sbt ×1

scala-cats ×1

types ×1