golang可见性规则(公有与私有,访问权限)
2023-09-14 09:12:25 时间
Go语言没有像其它语言一样有public、protected、private等访问控制修饰符,它是通过字母大小写来控制可见性的,如果定义的常量、变量、类型、接口、结构、函数等的名称是大写字母开头表示能被其它包访问或调用(相当于public),非大写开头就只能在包内使用(相当于private,变量或常量也可以下划线开头)
例如:
visibility/test.go
package visibility
import "fmt"
const PI = 3.145
const pi = 3.14
const _PI = 3.14
var P int = 1
var p int = 1
func private_function() {
fmt.Println("only used in this package!")
}
func Public_fuction() {
fmt.Println("used in anywhere!")
}
main.go
package main
import (
"visibility"
"fmt"
)
func main() {
visibility.Public_fuction() //used in anywhere!
//visibility.private_function() //不能访问私有函数,无法通过编译
fmt.Println(visibility.P) //1
//fmt.Println(visibility.p) //不能访问私有变量,无法通过编译
fmt.Println(visibility.PI) //3.14
//fmt.Println(visibility.pi) //不能访问私有常量,无法通过编译
//fmt.Println(visibility._PI) //不能访问私有常量,无法通过编译
}
相关文章
- Python函数之计算规则图形的面积
- iptables常用规则:屏蔽IP地址、禁用ping、协议设置、NAT与转发、负载平衡、自定义链
- 《从零开始学Swift》学习笔记(Day 42)——构造函数调用规则
- c# 优化代码的一些规则——判断null值得不同写法[六]
- c# 优化代码的一些规则——优先隐式类型[一]
- [Pholcus] Go项目 Pholcus 编写静态规则文件, 0 到 1
- error when defining a rule - SAP loyalty management的积分定义规则
- [0] C#软件项目版本号的命名规则及格式介绍
- nginx重写规则配置
- HotSpot关联规则算法(2)-- 挖掘连续型和离散型数据
- jboss规则引擎KIE Drools 6.3.0 Final 教程(1)
- [Golang] kafka集群搭建和golang版生产者和消费者
- Dart基础第2篇:变量、常量、命名规则、入口方法的两种定义方式
- Iptables防火墙limit模块扩展匹配规则
- Aultim Designer 定位孔铺铜直连规则设置