Python Rust için bir bağlantı noktası üzerinde çalışıyorum ve doğal olarak Python gibi Rust olarak ifade edilemez bazı kod koştu.
Bunun bir örneği varsayılan parametreleri kullanmaktır:
class Foo:
def __init__(self, a="Hello"):
self._a = a
Rust'ta bunu bir oluşturucu kullanarak uygulayabilirsiniz:
struct FooBuilder {
a: &'static str,
}
struct Foo {
_a: &'static str
}
impl FooBuilder {
fn new() -> FooBuilder {
FooBuilder {
a: "Hello",
}
}
fn change_a(self, new_a: &'static str) -> FooBuilder {
FooBuilder {
a: new_a,
..self
}
}
fn build(self) -> Foo {
Foo {
_a: self.a,
}
}
}
Sınıfı Python'da kullanmak için:
foo = Foo("Hello, World!")
Ancak Rust'da şöyle bir şey yazmanız gerekir:
let foo = FooBuilder::new().change_a("Hello, World!").build();
Bu şu soruyu doğurur: bir bağlantı noktası için bir API bulundurmak daha mı iyi, yoksa taşıma dilinin deyimlerini kullanmak daha mı iyi? API'nın ne kadar iyi tanınacağına bağlı mı?