методы

This commit is contained in:
badkaktus 2019-10-07 15:57:42 +03:00
parent 063c61fb31
commit d9f948bcfc
3 changed files with 14 additions and 13 deletions

View File

@ -16,7 +16,7 @@ Switch
Рекурсия (Recursion)
Указатели (Pointers)
Структуры (Structs)
Methods
Методы (Methods)
Interfaces
Errors
Goroutines

View File

@ -1,4 +1,4 @@
// Go supports _methods_ defined on struct types.
// Go поддерживает _методы_ для структур
package main
@ -8,13 +8,13 @@ type rect struct {
width, height int
}
// This `area` method has a _receiver type_ of `*rect`.
// Метод `area` принимает _получателя_ `*rect`.
func (r *rect) area() int {
return r.width * r.height
}
// Methods can be defined for either pointer or value
// receiver types. Here's an example of a value receiver.
// Методы могут принимать как указатели, так и значения.
// Вот пример со значением.
func (r rect) perim() int {
return 2*r.width + 2*r.height
}
@ -22,15 +22,16 @@ func (r rect) perim() int {
func main() {
r := rect{width: 10, height: 5}
// Here we call the 2 methods defined for our struct.
// Вызываем 2 метода, определенные для нашей структуры.
fmt.Println("area: ", r.area())
fmt.Println("perim:", r.perim())
// Go automatically handles conversion between values
// and pointers for method calls. You may want to use
// a pointer receiver type to avoid copying on method
// calls or to allow the method to mutate the
// receiving struct.
// Go автоматически обрабатывает преобразование между
// значениями и указателями при вызове методов.
// Возможно, вы захотите использовать указатель в
// качестве получателя, чтобы избежать копирования при вызове
// метода или позволить методу изменять структуру
// получателя.
rp := &r
fmt.Println("area: ", rp.area())
fmt.Println("perim:", rp.perim())

View File

@ -4,5 +4,5 @@ perim: 30
area: 50
perim: 30
# Next we'll look at Go's mechanism for grouping and
# naming related sets of methods: interfaces.
# Далее мы рассмотрим механизм Go для группировки
# и именования связанных наборов методов: интерфейсов.