小编Don*_*ark的帖子

使用方法而不是函数有什么好处吗?

我正在开发“Matrix”结构体和相关方法,目的是为了练习 Go。我做了很多方法,但我意识到所有这些方法都可以变成我习惯于C++的函数,而在C++中,如果我创建一个参数是类类型的函数,则该函数不能使用该类的私有变量(信息隐藏)但是,当我使用“Go”构建类似的代码时,函数可以访问结构体的变量。所以我不明白 Go 中的方法和函数有什么不同。使用方法而不是函数是否有任何利润,反之亦然?

第一个是我原来的“Matrix”代码(不是全部)它使用了一种方法“Tr”。它没有问题。

package main
import "fmt"

//definition of "Array"
type Array struct{
    component [][]float32
    row int
    col int
}
//constructor of Array, "Ones"; making an array setting all component as one
func Ones(m int, n int) Array{
    var a Array
    a.component = make([][]float32, m)
    a.row=m
    a.col=n
    for i:=0; i<m; i++{
        a.component[i] = make([]float32, n)
        for j:=0; j<n; j++{
            a.component[i][j]=1
        }
    }
    return a
}
//Tr function; find trace of an Array
func (a Array) Tr() float32{
    var …
Run Code Online (Sandbox Code Playgroud)

methods function go

1
推荐指数
1
解决办法
587
查看次数

标签 统计

function ×1

go ×1

methods ×1