以下代码行是什么意思?

时间:2020-09-05 05:02:49

标签: 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 个答案:

答案 0 :(得分: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类型的myInt

这里有一些有关此的参考。
-https://tour.golang.org/methods/3
-https://gobyexample.com/methods