when i use overloading constructor, it error. So, rust lang support overloading constructor?. This is code:
use std::result;
use std::fmt;
pub struct SomeObj{
someobj1: String,
someobj2: i32,
someobj3: i32,
}
/* FIXME: constructor and get set*/
/* FIXME: constructor*/
impl SomeObj{
pub fn newtest(someobj1: &str, someobj2: i32, someobj3: i32)->SomeObj{
SomeObj{someobj1:someobj1.to_string(),
someobj2:someobj2,
someobj3:someobj3,
}
}
}
pub fn newtest(someobj1: &str, someobj2: i32)->SomeObj{
SomeObj{someobj1:someobj1.to_string(),
someobj2:someobj2,
}
}
impl Clone for SomeObj{
fn clone (&self)-> SomeObj{
SomeObj{
someobj1:self.someobj1.clone(),
someobj2:self.someobj2.clone(),
someobj3:self.someobj3.clone()
}
}
}
/* FIXME: set and get*/
impl SomeObj{
pub fn setsomeobj1 (&mut self, someobj1_c: &str){
self.someobj1 = someobj1_c.to_string();
}
pub fn getsomeobj1 (&self)-> String{
self.someobj1.to_string()
}
pub fn setsomeobj2 (&mut self, someobj2_c: i32){
self.someobj2 = someobj2_c;
}
pub fn getsomeobj2 (&self)->i32{
self.someobj2
}
pub fn setsomeobj3 (&mut self, someobj3_c: i32){
self.someobj3 = someobj3_c;
}
pub fn getsomeobj3 (&self)->i32{
self.someobj3
}
}
/* Error:
pub fn newtest(someobj1: &str, someobj2: i32)->SomeObj{
SomeObj{someobj1:someobj1.to_string(),
someobj2:someobj2,
}
}
missing field: someobj3
[E0063]
src/libtest/api.rs:22 SomeObj{someobj1:someobj1.to_string(),
src/libtest/api.rs:23 someobj2:someobj2,
src/libtest/api.rs:24 }
src/libtest/api.rs:22:3: 24:5 help: run rustc --explain E0063
to see a detailed
*/