在许多新兴语言如 Go、Rust、Nim 中,确实没有传统意义上的构造函数(constructor)。这并不意味着这些语言不能进行类似构造函数的操作,而是它们采用了不同的设计哲学和模式来达到相似的目的。
type Foo struct {
Bar int
}
func NewFoo(bar int) *Foo {
return &Foo{Bar: bar}
}
struct Foo {
bar: i32,
}
impl Foo {
fn new(bar: i32) -> Foo {
Foo { bar: bar }
}
}
type Foo = object
bar: int
proc newFoo(bar: int): Foo =
return Foo(bar: bar)
总的来说,这些新兴语言虽然没有传统意义上的构造函数,但它们提供了其它方式来进行对象的创建和初始化。这些方式在一些情况下可以提供更多的灵活性和简洁性。