golang方法的使用细节:参数默认是值拷贝,不仅仅是struct自定义数据类型也可以绑定方法、方法名称首字母大写为public权限、String()方法的使用
2023-09-14 09:01:53 时间
(1)结构体类型是值类型,在方法调用中,遵守值类型的传递机制,是值拷贝
传递方式
(2)如程序员希望在方法中,改变结构体变量的值,可以通过结构体指针的方式来处理
我们写程序的时候,可以直接简化:
底层编译器做了优化,底层会自动帮我们加上& *
(3)Golang中的方法作用在指定的数据类型上的,和指定的数据类型绑定,因此自定义类型,都可以有方法,而不仅仅是struct,比如int , float32等都可以有方法
package main
import "fmt"
type integer int
func (i integer) print(){
i = 30
fmt.Println("i = ",i)
}
func (i *integer) change(){
*i = 30
fmt.Println("i = ",*i)
}
func main(){
var i integer = 20
i.print()
i.change()
fmt.Println(i)
}
(4)方法的访问范围控制的规则,和函数一样。方法名首字母小写,只能在本包访问,方法首字母大写,可以在本包和其它包访问。
(5)如果一个类型实现了String()
这个方法,那么fmt.Println
默认会调用这个变量的String()进行输出
这个String()方法相当于java中的toString()方式
以后定义结构体的话,常定义String()作为输出结构体信息的方法,在fmt.Println会自动调用
package main
import "fmt"
type Student struct{
Name string
Age int
}
func (s *Student) String() string{
str := fmt.Sprintf("Name = %v , Age = %v",s.Name,s.Age)
return str
}
func main(){
stu := Student{
Name : "丽丽",
Age : 20,
}
//传入地址,如果绑定了String方法就会自动调用
fmt.Println(&stu)
}
相关文章
- 权限提升方法小结
- 给js对象添加属性和方法属性_js给json对象添加属性
- 预测建模常用的数据预处理方法
- php 中输出控制器名称,Thinkphp5.0&&5.1怎么获取模块名控制器名方法名(权限配置中)
- R语言k-Shape时间序列聚类方法对股票价格时间序列聚类|附代码数据
- 有了Fine-tune-CoT方法,小模型也能做推理,完美逆袭大模型
- 教你如何创建并设置Oracle查询权限用户的方法
- linux给用户添加root权限方法总结
- Oracle删除当前用户下所有表的方法适用于有或没有删除权限
- Linux下管理MV权限的方法(mv权限linux)
- Linux用户提升权限的可行方法(linux用户加权限)
- 命令Linux下Echo命令的使用方法(linux下echo)
- 权限调整Linux组用户文件权限:掌握正确方法(linux组用户文件)
- MySQL中禁止字段重复:设置方法(mysql设置不重复)
- Linux中修改用户权限的方法(linux修改用户权限)
- 解决Oracle权限问题的有效方法(oracle权限问题)
- 解决Oracle视图权限不足的方法(oracle视图权限不足)
- C查询Oracle数据库的实现方法(c查询oracle)
- 权限掌握Linux查看数据库权限的方法(linux显示数据库)
- Linux获取Root权限的简单方法(linux获取超级权限)
- 轻松实现权限管理:linux中的更改权限方法(linux中更改权限)
- Linux环境下授予用户组权限的方法(linux授权用户组)
- MySQL查看数据库权限的方法(mysql 查看库权限)
- Mysql非空值处理:探究实现方法(mysql 非空判断)
- MySQL中加密使用什么方法(mysql中加密用什么)
- 快速简单的MySQL分区删除方法探秘(mysql中分区怎么删除)
- MySQL授予权限方法简介(mysql下赋予权限)
- Orcle的package中访问其它Schema的表报错ORA-00942解决方法
- mysql启动的error2003和1067错误问题解决方法
- 优化Mysql数据库的8个方法
- centos中找回MariaDB数据库root用户权限的方法
- 使用PHP生成PDF方法详解