методы
This commit is contained in:
parent
063c61fb31
commit
d9f948bcfc
@ -16,7 +16,7 @@ Switch
|
||||
Рекурсия (Recursion)
|
||||
Указатели (Pointers)
|
||||
Структуры (Structs)
|
||||
Methods
|
||||
Методы (Methods)
|
||||
Interfaces
|
||||
Errors
|
||||
Goroutines
|
||||
|
@ -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())
|
||||
|
@ -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 для группировки
|
||||
# и именования связанных наборов методов: интерфейсов.
|
||||
|
Loading…
x
Reference in New Issue
Block a user