当前位置: 首页 > news >正文

南方数据企业网站管理系统9网站建设维护概括总结

南方数据企业网站管理系统9,网站建设维护概括总结,上海金山网站建设公司,如何建设网站并与数据库相连文章目录 方法:one: 方法的概念:star2: 内嵌类型的方法和继承:star2: 多重继承 📅 2024年5月9日 📦 使用版本为1.21.5 方法 1️⃣ 方法的概念 ⭐️ 在Go语言中没有类这个概念,可以使用结构体来实现,那类方法呢?Go也…

文章目录

    • 方法
      • :one: 方法的概念
        • :star2: 内嵌类型的方法和继承
        • :star2: 多重继承

📅 2024年5月9日

📦 使用版本为1.21.5

方法

1️⃣ 方法的概念

⭐️ 在Go语言中没有类这个概念,可以使用结构体来实现,那类方法呢?Go也同样的实现,那就是方法

⭐️ 方法和函数长得很像,但是它多出来了一个"接收者"的选项(我也不知道为啥要这么高大上的名字,看书的时候都给我看蒙蔽了),其实就是和一个结构体(类),或者一个类型进行绑定比如下面的列子

this表示one这个类,和java中的this或者pythonself类似表示当前类,也就是表示这个方法是属于one类的

type one struct {a intb int
}func (this one) GetA() {//this类似于java中的this,表示这个类println(this.a) 
}func main() {one := &one{1, 2} //这里有没有很像创建一个类one.GetA()  //然后调用类方法
}

⭐️ 接收者的类型,可以是int,bool,string,数组函数的别名(经过type定义的)类型,但是不能是一个接口类型,接口是一个抽象定义,方法是具体的实现,而且还不能是一个指针类型,但是可以是可以是前面几种类型的指针类型

⭐️ 在go中方法和类可以不用写在一个源代码(体现的很明显了),可以分开写,但是必须在同一个包内!

⭐️ 方法在一个接收者类型中只能存在一个(名字),不能存在多个,但是可以在不同接收者类型中多个(名字)

//不同的接收者类型
func (this two) GetA() { println(this.a)
}func (this one) GetA() { println(this.a)
}

⭐️ 如果想定义的方法可以在外部调用(你可以发现Go中已经实现的方法如fmt.Println它们都是开头首字母大写),前面说过,需要首字母大写

⭐️ 绑定类型(传入接收者)最好是使用指针类型,否则传入的接收者类只是类的一个拷贝,下面这个列子就体现出来了

ps: 这里的SetGet很像java对不对

type one struct {a intb int
}func (this one) GetA() {println(this.a)
}
func (this one) SetA(i int) int { //修改athis.a = ireturn this.a
}func main() {one := &one{1, 2} one.GetA()        //输出1one.SetA(3) //使用Set方法修改为 3one.GetA()   //输出1
}

如果换成指针

type one struct {a intb int
}func (this *one) GetA() {println(this.a)
}
func (this *one) SetA(i int) int { //使用指针类型this.a = ireturn this.a
}func main() {one := &one{1, 2}one.GetA()  //输出1one.SetA(3) //使用Set方法修改为 3one.GetA()  //输出3
}

😀 学到这里我直接懂了!这玩意和类差不多,甚至可以可以定义自己的getset方法,包括toString也可以,(幸好之前学完了java)

type Person struct {Name stringage  intsex  string
}func (this *Person) GetName() { //get方法println(this.Name)
}
func (this *Person) SetName(i string) string { //set方法this.Name = ireturn this.Name
}
func (this *Person) ToString() { //Tostring方法fmt.Println("name :", this.Name,", age :", this.age,", sex :", this.sex,)
}func main() {p1 := Person{"zhangsan", 18, "man"}p1.ToString()
}

⭐️ 对象的字段不应该由2个或2个以上的不同线程在同一时间去改变(在后面会学解决办法)

🌟 内嵌类型的方法和继承

⭐️ 一个匿名类型被嵌入到结构体中,匿名类型的可见方法也同样被内嵌,相当于继承

🌟 多重继承

⭐️ 简单来说就是一个一个子类可以继承多个父类,在Java中是不被允许的,但是在Go结构体匿名字段下可以实现,只需要通过内嵌两个就好了

type Person struct { //人的基本Name stringage  intsex  string
}type Student struct { //学生School stringscore  intranked   int
}
type You struct { //你Person //你是个人也是一个学生Student
}func main() {p1 := You{Person:  Person{"lisi", 18, "男"},Student: Student{"茶啊二中", 99, 1},}fmt.Println(p1)
}
http://www.yayakq.cn/news/719288/

相关文章:

  • top域名的网站编程网站scratch
  • 网站被百度惩罚放弃网站视频怎么做的好
  • 网站备案查询流程网页制作代码成品
  • wordpress全站加密wordpress搭建短视频网站
  • 个体户网站建设企业网站优化公司
  • 长春网易网站建设营销的网站建设公司
  • 旅游网站开发需求分析同ip下网站
  • 上海十大国企集团外贸网站建设网站优化
  • 长安网站建设制作公司网站平台怎么推广
  • 高档网站建设聚商网络营销公司
  • 网站空间管理系统天河外贸型网站建设
  • 常州微信网站建设流程深圳福田有什么好玩的地方
  • 网站建设收获网站上线后的工作
  • php网站开发实训感想网站建设必须买主机吗
  • 赤壁网站建设如何做营销型网站
  • 定制网站开发介绍图上海工程建设执业资格注册中心网站
  • 网站备案与服务器效果图网站密码破解
  • 公司网站没做301怎么做301凡客网站官网
  • 营销网站设计实验网站建设销售岗位职责
  • 网站建设如何赚钱制作网页的步骤是什么
  • 网站栏目建设征求意见新闻稿件代发平台
  • php家具网站模版深圳学校网站建设报价
  • 郑州建材网站建设南宁做网站方案
  • 做网站需要走公司吗万能浏览器下载
  • 建网站首页图片哪里找河南高端网站高端网站建设
  • 设计一个完整的静态网站个人做网站多少钱
  • 找设计师的网站aws ec2 wordpress
  • 现在建设网站赚钱吗永川区网站建设
  • wordpress 查看大图广州新塘网站seo优化
  • 手机网站信任从哪里设置合肥seo