# Go学习-Day6
文章目录
- 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关键字,只要一个变量类型,绑定了接口中所有的方法,这个变量就能实现这个接口
-
这个变量就能导入到含有接口作为变量的函数内
相关文章:
# Go学习-Day6
文章目录 Go学习-Day6封装继承接口 Go学习-Day6 个人博客:CSDN博客 封装 类似java的类的封装,这里我们利用大小写和工厂模式来实现封装的功能略过 继承 相似的类具有相似的方法,反复绑定相同的方法,代码冗余,所以引…...
分布式 - 服务器Nginx:一小时入门系列之 HTTPS协议配置
文章目录 1. HTTPS 协议2. 生成 SSL 证书和私钥文件3. 配置 SSL 证书和私钥文件4. HTTPS 协议优化 1. HTTPS 协议 HTTPS 是一种通过计算机网络进行安全通信的协议。它是HTTP的安全版本,通过使用 SSL 或 TLS 协议来加密和保护数据传输。HTTPS的主要目的是确保在客户…...
探秘Linux系统性能监控神器!Linux和Python技术持续学习者必看!
引言 作为Linux运维工程师,我们经常需要对服务器的性能进行监控和调优。而Python作为一门强大的脚本语言,可以帮助我们轻松实现各种系统性能监控任务。本文将介绍几个实用的Python库和工具,帮助我们监控Linux系统的CPU、内存、磁盘和网络等性…...
文心一言续写太监小说《名侦探世界的巫师》
《名侦探世界的巫师》是我的童年回忆,总是想着续写一下,但是又没有时间和文笔,文心一言出了,由于目前大模型貌似可以联网,可以尝试搞一波~ 目录 文章1【前六个故事还能看,后面就是在重复】故事2【辣眼睛】…...
Solidity 合约安全,常见漏洞(第三篇)
Solidity 合约安全,常见漏洞(第三篇) ERC20 代币问题 如果你只处理受信任的 ERC20 代币,这些问题大多不适用。然而,当与任意的或部分不受信任的 ERC20 代币交互时,就有一些需要注意的地方。 ERC20&#…...
Linux安装Redis数据库,无需公网IP实现远程连接
文章目录 1. Linux(centos8)安装redis数据库2. 配置redis数据库3. 内网穿透3.1 安装cpolar内网穿透3.2 创建隧道映射本地端口 4. 配置固定TCP端口地址4.1 保留一个固定tcp地址4.2 配置固定TCP地址4.3 使用固定的tcp地址连接 Redis作为一款高速缓存的key value键值对的数据库,在…...
智慧政务,长远布局——AIGC引领,加速推进数字化政府建设
在人工智能、虚拟现实等领域迅猛发展且日益成熟的背景下,AI行业正迈向蓬勃发展的全新阶段,市场规模持续扩张。与此同时,数字服务也正在蓬勃兴起,新一代信息技术为数字政府构建了坚实支撑,重塑了政务信息化管理、业务架…...
中央处理器(CPU):组成、指令周期、数据通路、控制方式、控制器、指令流水线,补充(多处理器系统、硬件多线程)
中央处理器(CPU,Central Processing Unit),计算机控制和运算的核心,是信息处理和程序运行的执行单元。 CPU主要功能:处理指令、执行操作、控制时间、处理中断、处理数据。 其中,处理指令、执行…...
开源微服务如何选型?Spring Cloud、Dubbo、gRPC、Istio 详细对比
作者:刘军 不论您是一名开发者、架构师、CTO, 如果您曾深度参与在微服务开发中,那么相信您一定有过开源微服务框架或体系选型的疑问:Apache Dubbo、Spring Cloud、gRPC 以及 Service Mesh 体系产品如 Istio,到底应该选…...
Nginx的HTTPS部署与安全性能优化
Nginx作为一款高性能的Web服务器和反向代理服务器,被广泛用于应用部署和负载均衡。在安全环保意识的逐渐提高下,HTTPS也成为现代Web应用中必不可少的一环。本篇文章将重点介绍Nginx的HTTPS部署和安全性能优化。 一、Nginx的HTTPS部署 证书申请 首先需要去…...
5.8. Trusted Board Boot
5.8. Trusted Board Boot启动 Trusted Board Boot(TBB) 功能通过验证所有固件镜像(包括正常世界引导加载程序)来防止恶意固件在平台上运行。它通过使用公钥加密标准 (PKCS) 建立信任链来实现这一点。 本文介绍了可信固件-A (TF-A) TBB 的设计,它是Trusted Board Boot(TBBR…...
微信小程序——van-field中的left-icon属性自定义
✅作者简介:2022年博客新星 第八。热爱国学的Java后端开发者,修心和技术同步精进。 🍎个人主页:Java Fans的博客 🍊个人信条:不迁怒,不贰过。小知识,大智慧。 💞当前专栏…...
一文学会lua脚本
文章目录 0.前言背景应用 1. 学习大纲1. 学习基本语法:2. 理解函数和模块:3. 深入数据结构:4. 高级特性和技巧:5. 实践项目: 2. Lua脚本2.1 学习基本语法2.2 理解函数和模块2.3 深入数据结构2.4 高级特性和技巧 3. 高级…...
学习JAVA打卡第四十二天
正则表达式及字符串的替换与分解 ⑴正则表达式 正则表达式是string对象的字符序列,该字符序列中含有具有特殊意义的字符,这些特殊字符称作正则表达式的元字符。 注:由于“ ”代表任何一个字符,所以在正则表达式中如果想使用普…...
2023-8-25食物链
题目链接:食物链 #include <iostream>using namespace std;const int N 50010;int n, m; int p[N], d[N];int find(int x) {if(p[x] ! x){int t find(p[x]);d[x] d[p[x]];p[x] t;}return p[x]; }int main() {cin >> n >> m;for(int i 1; i…...
为什么要使用IP地址进行定位
IP地址定位是一种以互联网协议地址(IP地址)为基础的技术,它能够准确地确定一个设备在互联网上的位置。这种技术的应用范围非常广泛,从个人用户到企业机构甚至是国家安全和网络安全等领域都需要使用IP地址定位。 首先,I…...
CSS概念
1、CSS与HTML结合方式 1.1 第一种方式 内联/行内样式 就是在我们的HTML标签上通过style属性来引用CSS代码。 优点:简单方便 ; 缺点:只能对一个标签进行修饰。 1.2 第二种方式 内部样式 我们通过<style>标签来声明我们的CSS. 通常<style>标签我们推荐写在…...
淘宝API技术解析,实现关键词搜索淘宝商品(商品详情接口等)
淘宝提供了开放平台接口(API)来实现按图搜索淘宝商品的功能。您可以通过以下步骤来实现: 获取开放平台的访问权限:首先,您需要在淘宝开放平台创建一个应用,获取访问淘宝API的权限。具体的申请步骤和要求可以…...
Redis 7 教程 数据类型 基础篇
🌹 引导 Commands | Redishttps://redis.io/commands/Redis命令中心(Redis commands) -- Redis中国用户组(CRUG)Redis命令大全,显示全部已知的redis命令,redis集群相关命令,近期也会翻译过来,Redis命令参考,也可以直接输入命令进行命令检索。...
-bash: tree: command not found 的解决方法
在学习git操作时发现使用命令tree .git时显示错误 在网上查阅资料后,发现可能是没有安装生成tree的应用,所以我们使用命令安装应用即可 sudo yum install -y tree像这样就是安装成功了 我们再来试试 问题解决了,成功显示出树形结构...
从预测到归因:手把手教你用因果森林(grf)做特征重要性分析与亚组发现
从预测到归因:手把手教你用因果森林(grf)做特征重要性分析与亚组发现 在金融风控、个性化营销和医疗疗效评估等领域,我们常常面临一个关键问题:干预措施的效果是否存在显著差异?传统分析方法如A/B测试能告诉…...
错位排序算法
首先,让我们理解什么是错位排列:错位排列是指在排列中,任何一个元素都不在自己原来的位置上。比如,对于序列 {1,2,3}{1,2,3},一个错位排列可能是 {3,1,2}{3,1,2},因为 11 不在位置 11 上,22 不在…...
PyTorch 2.8镜像快速部署:5分钟验证torch.cuda.is_available()并启动API服务
PyTorch 2.8镜像快速部署:5分钟验证torch.cuda.is_available()并启动API服务 1. 镜像概述与环境准备 PyTorch 2.8深度学习镜像是一个开箱即用的高性能计算环境,专为现代AI工作负载优化。这个预配置环境能让你跳过繁琐的安装过程,直接进入模…...
MongoDB:如何构建“数据回收站“,防止人为误删数据(延迟节点)
更多内容请见: 《深入掌握MongoDB数据库》 - 专栏介绍和目录 一、引言:数据误删的现实挑战 在企业级数据库系统中,人为误删数据是导致业务中断的常见原因。根据2023年数据库安全报告,37%的数据丢失事件是由人为错误引起的,其中误删除操作占主要部分。MongoDB作为企业级No…...
别再手动整理了!用Python脚本5分钟搞定ImageNet验证集标签映射(附完整代码)
5分钟极速搞定ImageNet验证集标签映射:Python自动化实战指南 每次处理ImageNet验证集时,你是否也对着那些晦涩的数字标签头疼不已?手动查表不仅效率低下,还容易出错。今天我们就来彻底解决这个痛点——用Python脚本自动完成标签映…...
解锁Switch无限可能:TegraRcmGUI图形化注入工具实战指南
解锁Switch无限可能:TegraRcmGUI图形化注入工具实战指南 【免费下载链接】TegraRcmGUI C GUI for TegraRcmSmash (Fuse Gele exploit for Nintendo Switch) 项目地址: https://gitcode.com/gh_mirrors/te/TegraRcmGUI 当你想为Nintendo Switch安装自定义系统…...
告别pip install失败:手把手教你用Anaconda虚拟环境快速部署Mayavi(Python 3.9亲测)
告别pip install失败:手把手教你用Anaconda虚拟环境快速部署Mayavi(Python 3.9亲测) 科学计算和三维可视化是Python生态中的重要应用场景,而Mayavi作为一款强大的三维数据可视化库,在流体力学、医学影像、地质勘探等领…...
汇川小型机 H5U编写程序 设备采用回转hu小型机编写程序不含的硬件配置有ECT的总线
汇川小型机 H5U编写程序 设备采用回转hu小型机编写程序不含的硬件配置有ECT的总线,包括汇川660系列伺服驱动器以及Io模块。 设备程序分段明确采用梯形图编写更加方便,直观,易懂各个伺服轴密切配合,实现收放卷pid调节,以…...
2020年目标跟踪算法性能大盘点:速度与精度的较量
1. 目标跟踪算法的速度与精度之争 目标跟踪算法就像是一个永不疲倦的"数字猎手",它的任务是在视频序列中持续锁定目标物体。2020年涌现的算法在速度和精度这两个关键指标上展开了激烈角逐。想象一下,你正在用手机拍摄一只快速移动的小猫&#…...
埃拉托斯特尼筛法(埃氏筛)完整解析
一、算法用途 快速找出 2 ~ n 之间的所有素数。 暴力判断每个数:O(nn) 埃氏筛:O(nloglogn),接近线性,极快。 二、核心思想 先假设所有数都是素数。 从最小素数 2 开始,把它的所有倍数标记为合数。 取下一个没被标记的数(一定是素数),继续标记它的倍数。 最后没被标记…...
