【发布时间】:2020-01-22 06:45:12
【问题描述】:
我是 Vala 的新手,并试图了解该语言的工作原理。我通常使用 Python 或 JavaScript 等脚本语言。
那么,我的问题是为什么类构造函数有三种定义方式以及GObject风格的构造函数是如何工作的?
为了更好地理解,让我们用 python 做一个类比:
Python 类定义
class Car(object):
speed: int
def __init__(self, speed): # default constructor
self.speed = speed # property
还有瓦拉
class Car : GLib.Object {
public int speed { get; construct; }
// default
internal Car(int speed) {
Object(speed: speed)
}
construct {} // another way
}
我正在阅读Vala tutorial section about GObject style construction,但仍然不明白Object(speed: speed) 的工作原理以及construct 的用途?
【问题讨论】:
-
这基本上是这个问题的重复:stackoverflow.com/questions/33003942/…
-
这能回答你的问题吗? Vala different type of constructors
-
当然,我已经看到了这个答案。但我需要了解 GObject 是如何工作的。例如here。是否有另一种方法可以将应用程序对象提供给父类?