Напишем функцию для расчёта расстояния между двумя точками.
func getDistance(a pointXY, b pointXY) float64 {
var dx float64
var dy float64
var result float64
dx = a.x - b.x
dy = a.y - b.y
result = math.Sqrt(dx * dx + dy * dy)
return result
}
Вызываем созданную функцию.
var aa pointXY
var bb pointXY
aa.x = 2
aa.y = 4
bb.x = 15
bb.y = 7
d := getDistance(aa, bb)
fmt.Println("Distance:", d)
Создадим метод для вычисления суммы полей структуры.
func (t * NodeStructure) getSum() int {
var s int
s = t.a + t.b
return s
}
Создаём две структуры и вызываем их методы.
var x NodeStructure
var y NodeStructure
x.initFields(2, 3)
y.initFields(4, 5)
x.printFields()
y.printFields()
s1 := x.getSum()
s2 := y.getSum()
fmt.Println(s1, s2)
Интерфейсы
Создадим интерфейс с одним методом.
type MyInter interface {
getAnswer() int
}
Создадим структуру и метод для сложения чисел.
type PlusStructure struct {
x int
y int
}
func (t * PlusStructure) getAnswer() int {
return t.x + t.y
}
Создадим структуру и метод для вычитания чисел.
type MinusStructure struct {
a int
b int
}
func (t * MinusStructure) getAnswer() int {
return t.a - t.b
}
Создадим функцию для вывода результата математической операции на экран.