这是工厂吗?如何为结构创建构造函数?
Is this factory and how do I make constructor for struct?
struct Person{
name: String
}
fn person_factory(name: String)-> Person {
Person{
name,
}
}
fn main() {
let p1 = person_factory("Viktor Draganov".to_string());
println!("{}", p1.name);
}
这家工厂生锈了吗?我如何从构造函数中初始化 person?
person_factory
确实看起来像一个工厂(如果不是特别有用或必要的话)。通常工厂的存在是为了从用户那里抽象出一些创建逻辑。比如创建人时将出生日期转换为年龄。
Rust 没有任何特殊的方法可以像您在 Java、Python、C++ 等语言中熟悉的构造函数一样工作;然而,有一种常见的做法提供了与本网站中描述的基本相同的行为,其中涵盖了 Rust 设计模式:Constructors.
按照这篇文章,您可以像这样为您的 Person class 创建一个“构造函数”(它看起来应该与您在上面分享的工厂方法非常相似):
struct Person{
name: String
}
impl Person {
pub fn new(name: String) -> Self {
Person {
name: name
}
}
}
fn main() {
let p1 = Person::new("Viktor Draganov".to_string());
println!("{}", p1.name);
}
struct Person{
name: String
}
fn person_factory(name: String)-> Person {
Person{
name,
}
}
fn main() {
let p1 = person_factory("Viktor Draganov".to_string());
println!("{}", p1.name);
}
这家工厂生锈了吗?我如何从构造函数中初始化 person?
person_factory
确实看起来像一个工厂(如果不是特别有用或必要的话)。通常工厂的存在是为了从用户那里抽象出一些创建逻辑。比如创建人时将出生日期转换为年龄。
Rust 没有任何特殊的方法可以像您在 Java、Python、C++ 等语言中熟悉的构造函数一样工作;然而,有一种常见的做法提供了与本网站中描述的基本相同的行为,其中涵盖了 Rust 设计模式:Constructors.
按照这篇文章,您可以像这样为您的 Person class 创建一个“构造函数”(它看起来应该与您在上面分享的工厂方法非常相似):
struct Person{
name: String
}
impl Person {
pub fn new(name: String) -> Self {
Person {
name: name
}
}
}
fn main() {
let p1 = Person::new("Viktor Draganov".to_string());
println!("{}", p1.name);
}