为什么在主构造函数中代码中可以使用非val或var参数?

时间:2012-05-14 01:48:14

标签: scala constructor

我有这段代码。

class VBO (size: Int, usage: Int,
    private val vao: Int = GL30.glGenVertexArray(), 
    private val vbo: Int = GL15.glGenBuffers())

为什么我可以在课堂上的其他方法中使用大小和用法?他们还考虑了什么(领域,方法等)?

1 个答案:

答案 0 :(得分:4)

它们是可用的,因为可能是因为某些原因你需要它们,因为你将它们声明为参数。如果您在private valdef上使用它们,则有效lazy val。如果您根本不使用它们,或者只是初始化valvar,它们只存在于构造函数中,并且不是创建的实例的一部分。