O retorno de valores de métodos também é semelhante ao que foi aplicado para retorno de valores
em funções aprendidos anteriormente.
Sintaxe
impl tipo_struct {
fn nome_metodo(&self) -> tipo_retorno {
return <valor_retorno>;
}
}
Onde
<valor_retorno>: valor ou expressão para retorno
Exemplo 4
struct MinhaStruct {
//omitido
}
//definição de método
impl MinhaStruct {
fn to_string(&self) -> i8{
1 //SEM RETURN
}
}
fn main ()
{
let variavel = MinhaStruct{};
let ret = variavel.to_string();
println!("{}",ret);
}
O uso do comando return é opcional quando o valor retorno é apenas um valor ou expressão simples
contendo os parâmetros do método. Nesse casos, o terminador (;) devo ser omitido.
Sintaxe
impl tipo_struct {
fn nome_metodo(&self) -> tipo_retorno {
<valor_retorno>
}
}
Onde
<valor_retorno>: valor ou expressão para retorno
Exemplo 5
struct MinhaStruct {
//omitido
}
//definição de método
impl MinhaStruct {
fn metodo1(&self) -> i8{
1
}
fn metodo2(&self, p: i8) -> i8{
p*2
}
}
fn main ()
{
let variavel = MinhaStruct{};
let mut ret = variavel.metodo1();
println!("{}",ret);
ret = variavel.metodo2(2);
println!("{}",ret);
}
Saída
1
4