Rumah >pembangunan bahagian belakang >Golang >Apakah perbezaan antara sekatan akses kaedah dan fungsi golang?
Kawalan akses dalam Go ditentukan oleh aksara awalan nama: Kawalan akses kaedah: awam (huruf besar): boleh diakses oleh semua pakej peribadi (huruf kecil): hanya boleh diakses oleh pakej yang ditakrifkan Kawalan akses fungsi: awam (huruf besar): boleh diakses kepada semua pakej pakej (huruf kecil): hanya boleh diakses oleh pakej yang ditakrifkan
Sekatan akses pada kaedah dan fungsi dalam Go
Dalam bahasa Go, kebenaran akses pembolehubah, kaedah dan fungsi adalah ditentukan oleh aksara awalan nama mereka.
Kawalan Akses Kaedah
Kaedah ialah fungsi yang dikaitkan dengan jenis struktur. Aksara awalan mereka adalah seperti berikut:
public
(大写字母):在所有包中都可以访问。private
(小写字母):仅在定义它的包中可以访问。示例:
type Person struct { name string } // public 方法 func (p Person) PublicMethod() { // ... } // private 方法 func (p Person) privateMethod() { // ... }
函数访问控制
与方法类似,函数的前缀字符也决定了它们的访问权限:
public
(大写字母):在所有包中都可以访问。package
(小写字母):仅在定义它的包中可以访问。示例:
// public 函数 func PublicFunction() { // ... } // package 函数 func packageFunction() { // ... }
实战案例
假设我们有一个包 customer
,其中定义了一个 Customer
结构体和一个公共方法 GetFullName
:
package customer type Customer struct { firstName string lastName string } // public 方法 func (c Customer) GetFullName() string { return c.firstName + " " + c.lastName }
在另一个包 main
中,我们可以使用 customer
包中的 Customer
类型和 GetFullName
package main import ( "fmt" "customer" ) func main() { c := customer.Customer{ firstName: "John", lastName: "Doe", } fullName := c.GetFullName() fmt.Println(fullName) // 输出:John Doe }🎜🎜Kawalan akses fungsi🎜🎜🎜Sama seperti kaedah, aksara awalan fungsi juga menentukan hak aksesnya: 🎜🎜🎜
pelanggan
, yang mentakrifkan struktur Pelanggan
dan kaedah awam GetFullName
: 🎜rrreee🎜Dalam pakej lain utama
, kita boleh menggunakan Customer
daripada kod pakej customer
> taip dan kaedah GetFullName
: 🎜rrreeeAtas ialah kandungan terperinci Apakah perbezaan antara sekatan akses kaedah dan fungsi golang?. Untuk maklumat lanjut, sila ikut artikel berkaitan lain di laman web China PHP!