# Go学习-Day6

news/2024/4/15 8:46:52

文章目录

  • Go学习-Day6
    • 封装
    • 继承
    • 接口

Go学习-Day6

  • 个人博客:CSDN博客

封装

  • 类似java的类的封装,这里我们利用大小写和工厂模式来实现封装的功能
  • 略过

继承

  • 相似的类具有相似的方法,反复绑定相同的方法,代码冗余,所以引入了继承的概念

  • 嵌套匿名结构体来实现继承的效果

  • 动手实践!

  • type Node struct {Name     string `json:"name"`Password string `json:"password"`
    }type Point struct {NodeX intY int
    }func (a *Node) ok() {a.Name = "bbbb"
    }
    func main() {var a Point = Point{Node{"aaa", "bbb"},1,2,}a.ok()fmt.Println(a)
    }
    
  • 注意看,a.ok()其实是a.Node.ok()底层自动识别,可以省略匿名结构体

  • 基本数据类型可以匿名,但是不能出现多个相同类型的匿名基本类型

接口

  • 多态主要就是由接口来实现的

  • 声明

  • type inter interface {a()b()
    }
    
  • 实现接口

  • import "fmt"type inter interface {a()b()
    }
    type obj1 struct {
    }type union struct {
    }func (o obj1) a() {fmt.Println("okkk")//用node对象给接口的a()实现
    }func (o obj1) b() {fmt.Println("ohhh")
    }func (u union) ok(in inter) {in.a()in.b()
    }func main() {x := union{}y := obj1{}x.ok(y)
    }
  • 从上面我们可以看到,在声明一个接口之后,我们用工厂方法法obj对应接口的所有方法给实现了,然后另外整一个抽象类似的的结构体,绑定一个方法运行接口,这样我们就能通过接口把这两个类给链接在一起。

  • 总结。

  • interface类型可以定义一组方法,方法不用实现,并且不能含有变量

  • Go语言没有implements关键字,只要一个变量类型,绑定了接口中所有的方法,这个变量就能实现这个接口

  • 这个变量就能导入到含有接口作为变量的函数内


http://www.ppmy.cn/news/1061166.html

相关文章

图为科技_边缘计算在智能安防领域的作用

边缘计算在智能安防领域发挥着重要的作用。智能安防系统通常需要处理大量的图像、视频和传感器数据,并对其进行实时分析和处理。边缘计算可以将计算和数据处理功能移动到离数据源更接近的地方,例如摄像头、传感器设备或安防终端。 以下是边缘计算在智能…

基于云原生网关的流量防护实践

作者:涂鸦 背景 在分布式系统架构中,每个请求都会经过很多层处理,比如从入口网关再到 Web Server 再到服务之间的调用,再到服务访问缓存或 DB 等存储。在下图流量防护体系中,我们通常遵循流量漏斗原则进行流量防护。…

redis持久化机制 事务详解

目录 前言: 持久化机制 RDB(Redis DataBase) 手动触发 save bgsave 自动触发 RDB特点 AOF(append only file) 缓冲区刷新策略 重写机制 aof重写流程 混合持久化 事务 事务操作命令 WATCH WATCH实现原…

HTML <template> 标签

实例 使用 <template> 保留页面加载时隐藏的内容。使用 JavaScript 来显示: <button οnclick="showContent()">显示被隐藏的内容</button><template><h2>Flower</h2><img src="img_white_flower.jpg" width=&q…

癌症预测新利器:弹性逻辑回归让健康更可控!

一、引言 癌症是全球范围内健康领域的重大挑战&#xff0c;早期预测和诊断对于提高治疗效果和生存率至关重要。在过去的几十年里&#xff0c;随着医学和数据科学的快速发展&#xff0c;基于机器学习和统计方法的癌症风险预测成为研究的热点。其中&#xff0c;弹性逻辑回归作为一…

前端性能优化之浏览器渲染优化

文章目录 引言一、浏览器渲染流程二、回流1. 什么是回流2. 哪些操作会导致回流 三. 针对回流如何优化1. 使用transform和opacity代替top、left和width等属性来进行动画效果的实现。因为transform和opacity不会引起回流。2. 尽量使用绝对定位&#xff08;position: absolute&…

“R语言+遥感“水环境综合评价方法

详情点击链接&#xff1a;"R语言遥感"水环境综合评价方法 一&#xff1a;R语言 1.1 R语言特点&#xff08;R语言&#xff09; 1.2 安装R&#xff08;R语言&#xff09; 1.3 安装RStudio&#xff08;R语言&#xff09; &#xff08;1&#xff09;下载地址 &…

【Java 动态数据统计图】前后端对接数据格式(Map返回数组格式数据)六(120)

说明&#xff1a; 前端使用&#xff1a;vue3.0 前后端对接数据格式&#xff1a;无非就是前端把后端返回的数据处理为自己想要的格式&#xff0c;或者&#xff0c;后端给前端处理好想要的格式&#xff1b; 针对前后端的柱状图&#xff0c;趋势图等数据对接&#xff0c;前端一般需…

C#+GDAL影像处理笔记08:生成DEM的图阔范围线

目录 1 实现思路 2 源码及解析 1 实现思路 首先获取DEM数据的转换参数信息,这个信息记录了DEM的放射变换参数,包括左上角X,X方向分辨率、0、左上角Y、0、Y方向的分辨率【负值】等信息。接着是根据转换参数,计算DEM分幅数据的四至范围坐标;主要用到上一步得到的转换参数信…

ubuntu下自启动设置,为了开机自启动launch文件

1、书写sh脚本文件 每隔5秒钟启动一个launch文件&#xff0c;也可以直接在一个launch文件中启动多个&#xff0c;这里为了确保启动顺利&#xff0c;添加了一些延时 #! /bin/bash ### BEGIN INIT sleep 5 gnome-terminal -- bash -c "source /opt/ros/melodic/setup.bash…

泡泡玛特再造泡泡玛特

“今年我们预计海外营收能到10亿元&#xff0c;”8月23日&#xff0c;在泡泡玛特2023年半年报业绩说明会上&#xff0c;泡泡玛特董事长兼CEO王宁表示&#xff0c;明年海外业务有信心超过整个集团IPO前2019年的收入&#xff0c;等于在海外再造了一个泡泡玛特。 就在前一日&#…

公司阿里云服务器被暴力破解

公司阿里云服务器被暴力破解&#xff1f; 公司云服务器跑了3年了&#xff0c;从来没改过密码&#xff0c;而且基本所有服务器密码都是同一个&#xff0c;只把公司IP添加白名单了。&#xff08;确实不严谨&#xff0c;但至少限制了连接源&#xff09; 突然就收到阿里云短信提醒…

scikit-learn中OneHotEncoder用法

One-Hot编码&#xff0c;又称为一位有效编码&#xff0c;是分类变量作为二进制向量的表示。这首先要求将分类值映射到整数值&#xff0c;然后&#xff0c;每个整数值被表示为二进制向量&#xff0c;将整数索引标记为1&#xff0c;其余都标为0。 OneHotEncoder()常用参数解释 …

Windows下 MySql通过拷贝data目录迁移数据库的方法

MySQL数据库的文件目录下图所示&#xff0c; 现举例说明通过COPY文件夹data下数据库文件&#xff0c;进行数据拷贝的步骤&#xff1b;源数据库运行在A服务器上&#xff0c;拷贝到B服务器&#xff0c;假定B服务器上MySQL数据库已经安装完成&#xff0c;为空数据库。 首先进入A服…

C. Another Problem on Strings

Problem - C - Codeforces 问题描述&#xff1a;给定一个k和一个01串&#xff0c;求该01串中有多少个’1’个数为k的字串&#xff0c;出现位置不同算不同的子串。 思路&#xff1a;暴力会挂&#xff0c;考虑优化。对于一个字串他满足’1’为k个条件时&#xff0c;它的前面第一…

UI设计第一步,在MasterGo上开展一个新项目

我们都知道&#xff0c;一个完整的项目&#xff0c;要经历创建团队、搭建组件库、应用规范以及管理设计资产&#xff0c;那么今天小编就在MasterGo中带你从0到1开展一个全新的项目。 你一定遇到过这种情况&#xff0c;同团队的设计师&#xff0c;由于使用不同版本或不同软件&a…

UG\NX二次开发 使用录制功能录制操作记录时,如何设置默认的开发语言?

文章作者&#xff1a;里海 来源网站&#xff1a;王牌飞行员_里海_里海NX二次开发3000例,C\C,Qt-CSDN博客 简介&#xff1a; NX二次开发使用BlockUI设计对话框时&#xff0c;如何设置默认的代码语言&#xff1f; 效果&#xff1a; 方法&#xff1a; 依次打开“文件”->“实用…

aws的s3匿名公开访问

点击桶权限 &#xff0c;添加策略 {"Version": "2012-10-17","Statement": [{"Sid": "AddPerm","Effect": "Allow","Principal": "*","Action": "s3:GetObject&qu…

第六十天

HTML DOM ●HTML DOM HTML 的标准对象模型 HTML 的标准编程接口 W3C 标准 HTML DOM 定义了所有 HTML 元素的对象和属性&#xff0c;以及访问它们的方法。 ●DOM 节点 根据 W3C 的 HTML DOM 标准&#xff0c;HTML 文档中的所有内容都是节点&#xff1a; 整个文档是一个…

Shibboleth 笔记

目录 1. Shibboleth 笔记 1. Shibboleth 笔记 Shibboleth 是一个针对 SSO 的开源项目。Shibboleth 项目主要应用在校园内 Web 资源共享, 以及校园间的应用系统的用户身份联合认证。
最新文章