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

网站建设的目标与期望wordpress 附件下载

网站建设的目标与期望,wordpress 附件下载,商城类app开发价格,怎样在内网建设一个网站在讲解具体的接口之前#xff0c;先看如下问题。 使用面向对象的方式#xff0c;设计一个加减的计算器 代码如下#xff1a; package mainimport fmt//父类#xff0c;这是结构体 type Operate struct {num1 intnum2 int }//加法子类#xff0c;这是结构体…在讲解具体的接口之前先看如下问题。 使用面向对象的方式设计一个加减的计算器 代码如下 package mainimport fmt//父类这是结构体 type Operate struct {num1 intnum2 int }//加法子类这是结构体type Add struct {Operate }//减法子类这是结构体type Sub struct {Operate }//加法子类的方法 func (a *Add) Result() int {return a.num1 a.num2 } 可以看到ADD里面是用父类结构体的然后直接返回num1num2就行了 //减法子类的方法 func (s *Sub) Result() int {return s.num1 - s.num2 } 可以看到Sub里面是用父类结构体的然后直接返回num1-num2就行了 //方法调用 func main0201() {//创建加法对象//var a Add//a.num1 10//a.num2 20//v : a.Result()//fmt.Println(v) //可以看到调用起来还是很简单的直接给父类结构体的属性赋值然后调用加法的方法就行。//创建减法对象var s Subs.num1 10s.num2 20v : s.Result()fmt.Println(v) } //可以看到调用起来还是很简单的直接给父类结构体的属性赋值然后调用减法的方法就行以上实现非常简单但是有个问题在main()函数中当我们想使用减法操作时创建减法类的对象调用其对应的减法的方法。但是有一天系统需求发生了变化要求使用加法不再使用减法那么需要对main()函数中的代码做大量的修改。将原有的代码注释掉创建加法的类对象调用其对应的加法的方法。有没有一种方法让main()函数只修改很少的代码就可以解决该问题呢有要用到接下来给大家讲解的接口的知识点。 一、 什么是接口 接口就是一种规范与标准在生活中经常见接口例如:笔记本电脑的USB接口可以将任何厂商生产的鼠标与键盘与电脑进行链接。为什么呢原因就是USB接口将规范和标准制定好后各个生产厂商可以按照该标准生产鼠标和键盘就可以了。 在程序开发中接口只是规定了要做哪些事情干什么。具体怎么做接口是不管的。这和生活中接口的案例也很相似例如USB接口只是规定了标准但是不关心具体鼠标与键盘是怎样按照标准生产的. 在企业开发中如果一个项目比较庞大那么就需要一个能理清所有业务的架构师来定义一些主要的接口这些接口告诉开发人员你需要实现那些功能。 二、 接口定义 接口定义的语法如下 //先定义接口 一般以er结尾 根据接口实现功能 type Humaner interface {//方法 方法的声明sayhi() }怎样具体实现接口中定义的方法呢 //Student的结构体 type student11 struct {name stringage intscore int } //Student的打印方法 func (s *student11)sayhi() {fmt.Printf(大家好我是%s,今年%d岁我的成绩%d分\n,s.name,s.age,s.score) } //teacher11的结构体 type teacher11 struct {name stringage intsubject string } //teacher11的方法 func (t *teacher11)sayhi() {fmt.Printf(大家好我是%s,今年%d岁我的学科是%s\n,t.name,t.age,t.subject) }具体的调用如下 func main() {//接口是一种数据类型 可以接收满足对象的信息//接口是虚的 方法是实的//接口定义规则 方法实现规则//接口定义的规则 在方法中必须有定义的实现var h Humanerstu : student11{小明,18,98}//stu.sayhi()//将对象信息赋值给接口类型变量h stuh.sayhi() //直接将Student的对象赋值给了h接口然后就能实现方法的调用tea : teacher11{老王,28,物理}//tea.sayhi()//将对象赋值给接口 必须满足接口中的方法的声明格式h teah.sayhi() }只要类(结构体)实现对应的接口那么根据该类创建的对象可以赋值给对应的接口类型。 接口的命名习惯以er结尾。 三、 多态 接口有什么好处呢实现多态。 多态就是同一个接口使用不同的实例而执行不同操作 所谓多态指的是多种表现形式如下图所示 使用接口实现多态的方式如下 package mainimport fmt//先定义接口 一般以er结尾 根据接口实现功能 type Humaner1 interface {//方法 方法的声明sayhi()}//student12的结构体 type student12 struct {name stringage intscore int } //student12的方法 func (s *student12)sayhi() {fmt.Printf(大家好我是%s,今年%d岁我的成绩%d分\n,s.name,s.age,s.score) } //teacher12的结构体 type teacher12 struct {name stringage intsubject string } //teacher12的方法 func (t *teacher12)sayhi() {fmt.Printf(大家好我是%s,今年%d岁我的学科是%s\n,t.name,t.age,t.subject) }//多态的实现 //将接口作为函数参数 实现多态 func sayhello(h Humaner1) {h.sayhi() }func main() {stu : student12{小明,18,98}//调用多态函数sayhello(stu)tea : teacher12{老王,28,Go}sayhello(tea) }关于接口的定义以及使用接口实现多态但是多态有什么好处呢现在还是以开始提出的计算器案例给大家讲解一下。 四、多态案例 使用多态的功能实现一个加减计算器。完整代码如下 package mainimport fmt// 定义接口 type Opter interface {// 方法声明Result() int }// 父类 type Operate struct {num1 intnum2 int }// 加法子类 type Add struct {Operate }// 加法子类的方法 func (a *Add) Result() int {return a.num1 a.num2 }// 减法子类 type Sub struct {Operate }// 减法子类的方法 func (s *Sub) Result() int {return s.num1 - s.num2 }// 多态实现 func Result(o Opter) {v : o.Result()fmt.Println(v) }// 上面是定义的方法 func main() {//创建加法对象//var a Add//a.num1 10//a.num2 20//v : a.Result()//fmt.Println(v)//2.通过接口实现//var o Opter//var a Add Add{Operate{10, 20}}//o a//value : o.Result()//fmt.Println(value)//3.多态实现var a Add Add{Operate{10, 20}}Result(a)var s Sub Sub{Operate{10, 20}}Result(s) }30 -10 四、 接口继承与转换 接口也可以实现继承: // 先定义接口 一般以er结尾 根据接口实现功能 type Humaner2 interface { //子集//方法 方法的声明sayhi() }type Personer interface { //超集Humaner2 //继承sayhi()sing(string) }type student13 struct {name stringage intscore int }func (s *student13) sayhi() {fmt.Printf(大家好我是%s,今年%d岁我的成绩%d分\n, s.name, s.age, s.score) }func (s *student13) sing(name string) {fmt.Println(我为大家唱首歌, name) }func main() {//接口类型变量定义var h Humaner2var stu student13 student13{小吴, 18, 59}h stuh.sayhi()//接口类型变量定义var p Personerp stup.sayhi()p.sing(大碗面) }大家好我是小吴,今年18岁我的成绩59分 大家好我是小吴,今年18岁我的成绩59分 接口继承后可以实现“超集”接口转换“子集”接口代码如下 package mainimport fmt// 先定义接口 一般以er结尾 根据接口实现功能 type Humaner2 interface { //子集//方法 方法的声明sayhi() }type Personer interface { //超集Humaner2 //继承sayhi()sing(string) }type student13 struct {name stringage intscore int }func (s *student13) sayhi() {fmt.Printf(大家好我是%s,今年%d岁我的成绩%d分\n, s.name, s.age, s.score) }func (s *student13) sing(name string) {fmt.Println(我为大家唱首歌, name) }func main() {//接口类型变量定义var h Humaner2 //子集var p Personer //超集var stu student13 student13{小吴, 18, 59}p stu//将一个接口赋值给另一个接口//超集中包含所有子集的方法h p //okh.sayhi()//子集不包含超集//不能将子集赋值给超集//p h //err//p.sayhi()//p.sing(大碗面) } 五、 空接口 空接口(interface{})不包含任何的方法正因为如此所有的类型都实现了空接口因此空接口可以存储任意类型的数值。例如 func test1() {fmt.Println(test) }func main() {// 空接口类型的切片var i []interface{}fmt.Printf(%T\n, i)i append(i, 1, 3.14, aaa, test1)fmt.Println(i)for idx : 0; idx len(i); idx {fmt.Println(i[idx])} }[]interface {} [1 3.14 aaa 0xd5420] 1 3.14 aaa 0xd5420
http://www.hkea.cn/news/14528772/

相关文章:

  • 快速模板建站工具杭州做网站价格
  • 道县找人做网站网站开发公司属于什么行业
  • 东莞建设工程造价管理网站域名主机基地
  • 地方网站建设鞍山兼职吧
  • 做网站服务器的配置四川省建设厅官方培训网站
  • 湘潭网站建设 磐石网络荣誉广州手机网站开发报价
  • js网站页面效果自己个人的网站怎么设计
  • 建设银行城东支行网站个人做网站下载网上图可以吗
  • 建网站有报价单吗学校网站源码php
  • 建设厅注册中心网站首页女孩学电子商务专业好就业吗
  • 做网站就上房山华网天下安徽索凯特建设工程有限公司网站
  • 深圳网站设计张兵铁路建设网站多少
  • 杭州市建设工程造价管理协会网站头条推广平台有哪些
  • 花店商城网站设计重庆行业平台
  • diango做的网站怎么用郑州专业旅游网站建设
  • 自学网页设计的网站软文范例大全100
  • 茂港网站设计公司现在哪些做进口商品的电商网站
  • 福州网站建设加推广wordpress head 优化
  • 建立网站需要什么软件小说章节收费网站建设
  • 关于建设 网站的请示中国建设工程鲁班奖查询网站
  • 市住房城乡建设部网站网站建设意味着什么
  • 旺道seo怎么优化网站海南网页设计
  • 做代理网站蓬莱市建设局网站
  • 株洲网站建设网站玉溪做网站建设的公司
  • 江安县规划和建设局网站wordpress 侧边栏错位
  • 做网站用小公司还是大公司宁波建设监理管理协会网站
  • 网站注册账号怎么做店面设计案例
  • 专门做课件的网站wordpress 小工具开发
  • 如何网站专题策划商标生成器在线制作
  • 手机咋建网站商城网站开发多