y int
}
type Triangle struct {
a Coordinate
b Coordinate
c Coordinate
}
type Triangles []Triangle
func (t Triangle) perimeter() int {
AB := math.Sqrt(math.Pow(float64(t.b.x)-float64(t.a.x), 2) + math.Pow(float64(t.b.y)-float64(t.a.y), 2))
BC := math.Sqrt(math.Pow(float64(t.c.x)-float64(t.b.x), 2) + math.Pow(float64(t.c.y)-float64(t.b.y), 2))
CA := math.Sqrt(math.Pow(float64(t.c.x)-float64(t.a.x), 2) + math.Pow(float64(t.c.y)-float64(t.a.y), 2))
return int(AB + BC + CA)
}
func main() {
}
Здравствуйте. Есть структура треугольник, она задаётся тремя координатами. Есть для этой структуры метод, который находит периметр.
Можно ли как-то сделать поле p в структуре треугольник, которому автоматически значение периметра присвоется после объявления треугольника?
Ну то есть
type Triangle struct {
a Coordinate
b Coordinate
c Coordinate
p int
}
tr := Triangle{Coordinate{1, 1}, Coordinate{2, 2}, Coordinate{3, 3}}
print(tr.p) // тут уже посчитан периметр
Для таких целей можно использовать конструктор
Обсуждают сегодня