如何解决具有选项类型的类参数是否不需要传递值?
此代码:
class B(d:Int,val b:Option[Int])
object A extends App {
val c=new B(1)
}
在行B(1)
上是错误的,我必须给值b
,例如
new B(1,Some(2))
我正在研究光滑,示例代码为:
final class MessageTable1(tag: Tag) extends Table[Message](tag,"message") {
class Table位于文件main \ scala \ slick \ relational \ RelationalProfile.scala第119行:
abstract class Table[T](_tableTag: Tag,_schemaName: Option[String],_tableName: String)
extends AbstractTable[T](_tableTag,_schemaName,_tableName)
因此,_schemaName
的类型为Option[String]
,但是当示例代码创建Table
时,似乎没有向其传递值,仅提供了其他两个参数:{{1 }}和tag
,为什么?
解决方法
Three lines down,您可以看到Table
具有辅助构造函数,其中两个参数分别为Tag
和String
类型(注意:否{ {1}})
Option
这是在您显示的示例代码中调用的构造函数,而不是主构造函数。
您还可以在the documentation中看到这两个构造函数。
版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 dio@foxmail.com 举报,一经查实,本站将立刻删除。