Olá Anderson, tudo bem?
É ótimo que você esteja explorando diferentes maneiras de implementar métodos em Go! Quanto à sua dúvida, usar um parâmetro como Abs(num int)
na segunda parte do método é uma questão de design e depende do que você deseja alcançar.
No exemplo que você editou, o método Abs
está sendo usado para calcular um valor absoluto e adicionar um número a ele. Isso é um pouco diferente do uso típico de um método Abs
, que geralmente apenas calcula o valor absoluto.
Se a intenção é sempre adicionar um número ao resultado, pode fazer sentido incluir esse parâmetro. No entanto, isso pode confundir outras pessoas que esperam que Abs
funcione como em outros contextos, onde ele simplesmente retorna o valor absoluto.
Se a adição de um número é uma operação comum que você precisa realizar, uma alternativa poderia ser criar um método separado, como AbsPlus(num int)
, que deixa claro que a operação envolve mais do que apenas calcular o valor absoluto.
Aqui está um exemplo de como poderia ser:
type MyFloat float64
func (f MyFloat) Abs() float64 {
if f < 0 {
return float64(-f)
}
return float64(f)
}
func (f MyFloat) AbsPlus(num int) float64 {
return f.Abs() + float64(num)
}
func main() {
f := MyFloat(-math.Sqrt2)
fmt.Println(f.AbsPlus(10))
}
Dessa forma, você mantém o método Abs
com sua funcionalidade tradicional e cria um método adicional para a operação específica que você precisa.
Espero ter ajudado e bons estudos!
Caso este post tenha lhe ajudado, por favor, marcar como solucionado ✓.