Что означают следующие строки кода?

#go

#Вперед

Вопрос:

Может ли кто-нибудь помочь мне понять прокомментированные строки кода?

 package main

import "fmt"

type myInt int

func (a myInt) add(b myInt) myInt {
    return a   b
}
func main() {
    num1 := myInt(5)        // mark - 1
    fmt.Println(num1)
    num2 := myInt(10)       // mark - 2
    fmt.Println(num2)
    sum := num1.add(num2)   // mark - 3
    fmt.Println("Sum is", sum)
}
  

Комментарии:

1. Первые две объявляют и инициализируют переменные типа myInt ( tour.golang.org/basics/13 ), третий вызывает метод add ( tour.golang.org/methods/1 ).

2. Ваша попытка сделать блок кода жирным шрифтом не работает внутри фрагмента кода. Вы могли бы просто оставить комментарий прямо рядом с этой самой строкой.

3. Экскурсия по Go объясняет язык. Проработайте это.

Ответ №1:

 type myInt int

func (a myInt) add(b myInt) myInt {
    return a   b
}

...

    num1 := myInt(5)
    num2 := myInt(10)
    sum := num1.add(num2)
  

Здесь type myInt int определяется тип, подобный

 type myStruct struct {
    ...
}
  

И num1 := myInt(5) определяет переменную типа myInt , которую вы также можете видеть как приведение к типу.

И sum := num1.add(num2) просто вызывает тип method of myInt .

Вот несколько ссылок на это.
https://tour.golang.org/methods/3
https://gobyexample.com/methods