鉴于以下课程:
case class AddRequest(x: Int, y: Int)
case class AddResponse(sum: Int)
case class ToUppercaseRequest(str: String)
case class ToUppercaseResponse(upper: String)
Run Code Online (Sandbox Code Playgroud)
如何以类型安全的方式定义一些函数:
def process(req: ???): ???
Run Code Online (Sandbox Code Playgroud)
这样以下内容应该成立:
val r1: AddResponse = process(AddRequest(2, 3))
val r2: ToUppercaseResponse = process(ToUppercaseRequest("aaa"))
Run Code Online (Sandbox Code Playgroud)
此外,下面的应该不会编译:
val r3 = process("somestring")
Run Code Online (Sandbox Code Playgroud) 说我做了以下步骤:
但是,我得到一些评论来改进代码的内容.
问题是,我不能再把它推到GitHub上的主题分支了.
那么处理这个问题的最佳方法是什么?
在私人注册表(myregistry.com)上,假设我的图像标记为'v1.2.3'.然后我推动它:
docker push myregistry.com/myimage:v1.2.3
如果我想关联另一个标签,说'staging',并将该标签推送到我的注册表,我可以:
docker tag myregistry.com/myimage:v1.2.3 myregistry.com/myimage:staging
docker push myregistry.com/myimage:staging
虽然这有效,但第二个docker push仍然会遍历每个图像,试图推送它(尽管跳过上传).有没有更好的方法来添加远程标签?
如何创建和分发自定义Chromium Web浏览器?它应该与Google版本相同,只是预安装了一些扩展程序.它仍然应该从chrome稳定通道获得更新.
给出以下 scala 代码:
sealed trait Color
case object Red extends Color
case object Blue extends Color
sealed trait Car {
def isBroken: Boolean
def color: Color
}
Run Code Online (Sandbox Code Playgroud)
我如何定义这样的方法:
def fixBrokenRedCar(c: A): B
Run Code Online (Sandbox Code Playgroud)
也就是说,应该A是什么B?Red该方法应该只接受同时为 和 的Car isBroken = true。否则它应该发出编译错误。此外,输出B应该包含有关其类型的信息,这样如果我创建另一个方法destroyRedCar(c: B)并将其应用于输出,它应该进行相应的编译。