Lo modificadores de acceso, son las formas que nosotros podemos acceder a un Struct o a un atributo, ya sea si son públicos o privados se podrá acceder a ellos desde el mismo paquete o desde la misma carpeta.
En Go, para indicar si un struct o un atributo es público o privado, depende de la forma en cómo lo nombremos. Si el nombre de éstos empieza con mayúscula, es porque es público o si empieza en minúscula es porque es privada.
type carPrivate struct {
brand string
year int
}
package mypackage
// CarPublic car con acceso público
type CarPublic struct {
Brand string
Year int
}
Acceder CarPublic
desde el main.go
:
package main
import (
"curso_golang_platzi/src/mypackage"
"fmt"
)
func main(){
var myCar mypackage.CarPublic
myCar.Brand = "Renault"
myCar.Year = 2020
fmt.Println(myCar)
}
Resultado:
{Renault 2020}
<aside>
🚨 En la raíz del proyecto deben ejecutar el comando go mod init
para que lea los paquetes el archivo main.go
.
</aside>
mypackage
con un aliaspackage main
import (
pk "curso_golang_platzi/src/mypackage"
"fmt"
)
func main(){
var myCar pk.CarPublic
myCar.Brand = "Renault"
myCar.Year = 2020
fmt.Println(myCar)
}
Al igual que los struct
, las funciones son pública si se nombran con mayúscula o privadas si es con minúscula
func PrintMessage(text string){
fmt.Println(text)
}
package main
import (
pk "curso_golang_platzi/src/mypackage"
)
func main(){
pk.PrintMessage("Hola Platzi")
}