小编Dju*_*kov的帖子

Laravel急切加载,只选择那些有相关型号的

项目和用户是多对多相关的,如何只选择具有相关用户的项目?我必须使用加入吗?就像是:

$projects = Project::with('users')->having('count(users)','>',0)->get();
Run Code Online (Sandbox Code Playgroud)

laravel

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

MyClass和MyClass.this.type有什么区别,以及如何将一个转换为另一个?

我有类似这样的情况:

trait Abst{
  type T
  def met1(p: T) = p.toString
  def met2(p: T, f: Double=>this.type){
    val v = f(1.0)
    v.met1(p)
  }
}
class MyClass(x: Double) extends Abst{
  case class Param(a:Int)
  type T = Param
  val s = met2(Param(1), (d: Double) => new MyClass(d))
}
Run Code Online (Sandbox Code Playgroud)

并且在我运行之前它不显示错误,然后它说:

类型不匹配; 发现:MyClass,必需:MyClass.this.type

我尝试了一个泛型类型的解决方案,但后来我发现这个与TT不同的冲突

所以我只需要克服上面的错误信息,如果可能的话?


更新

因此,事实证明这this.type是该单个实例的单例类型.我在评论中提出了用法

val s = met2(Param(1), (d: Double) => (new MyClass(d)).asInstanceOf[this.type])
Run Code Online (Sandbox Code Playgroud)

所以,如果有人对此发表评论,我知道它是多么丑陋,只是感兴趣它是多么不安全?

你们都建议在课外移动Param的定义,我绝对同意.所以它的定义将在伴随对象MyClass中

inheritance types scala

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

标签 统计

inheritance ×1

laravel ×1

scala ×1

types ×1