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

go语言day10 接口interface 类型断言 type关键字

  接口:

                空接口类型:

                        要实现一个接口,就要实现该接口中的所有方法。因为空接口中没有方法,所以自然所有类型都实现了空接口。那么就可以使用空接口类型变量去接受所有类型对象。

                        类比java,有点像Object类型的概念,所有类型都是Object类型的间接子类,可以用Object类型变量去接收任意对象。

        type A  interface{}

         var  obj1     A   =  Cat{ "string字符串"}

         var  obj2    =   123

             


               fmt.Println() fmt.Println()方法的参数是 空接口类型的切片,意思就是可以接收任意类型对象,并且数量是一个或多个任意类型对象。



            接口的实现和调用:

                        实现接口

                                要实现一个接口,就要实现该接口中的所有方法。

                          自定义的Cat类型实现了test1() test2() test3()方法,所以Cat类型实现了接口A,接口B,接口C。

                        调用接口

                        默认创建一个对象:  var cat  Cat  =Cat { }。 test1(),test2(),test3()方法都是Cat类型本身的,自然可以调用。

                        如果用  A类型去接受cat对象,也就是 Var  catA  A  = cat,那么这个对象是A接口类型的实现类 ,只能调用A接口类型的方法。

                        类比java,就是java的多态。声明一种类型叫生物,这种生物行为是能叫喊,现实对象有一只猫也能叫,生物的实例对象可以是这只猫,但是呢这个生物只能喵喵叫,计算机只知道这个对象类型是生物,计算机不知道它实际是个猫,只把它当作生物类型处理的话,自然只能执行生物所包含的方法。

                                



        类型断言

     创建断言

             1)     obj , judgeValue   :=  对象. ( 类型)  

             2)       switch  obj :=  对象.(类型){

                                case  实际类型1:     fmt.Print(obj)

                                case  实际类型2:     fmt.Print(obj)



        type关键字

                      创建结构体类型

                                type  Class   struct{ }

                      创建新类型  

                                type  Class2   Class

                                新类型Class2 的属性方法和Class一致,但是仍然是两种不同的类型.

                      创建类型别名

                                type  Class2  =  Class

                                给Class类型起一个别名,两个名称都表示同一种类型,只是名字不一样.

                      创建函数类型

                                type  myfunc  func(string)(string);


相关文章:

go语言day10 接口interface 类型断言 type关键字

接口: 空接口类型: 要实现一个接口,就要实现该接口中的所有方法。因为空接口中没有方法,所以自然所有类型都实现了空接口。那么就可以使用空接口类型变量去接受所有类型对象。 类比java,有点像Object类型的概念&#x…...

Java实现登录验证 -- JWT令牌实现

目录 1.实现登录验证的引出原因 2.JWT令牌2.1 使用JWT令牌时2.2 令牌的组成 3. JWT令牌(token)生成和校验3.1 引入JWT令牌的依赖3.2 使用Jar包中提供的API来实现JWT令牌的生成和校验3.3 使用JWT令牌验证登录3.4 令牌的优缺点 1.实现登录验证的引出 传统…...

liunx文件系统,日志分析

文章目录 1.inode与block1.1 inode与block概述1.2 inode的内容1.3 文件存储1.4 inode的大小1.5 inode的特殊作用 2.硬链接与软链接2.1链接文件分类 3.恢复误删除的文件3.1 案例:恢复EXT类型的文件3.2 案例:恢复XFS类型的文件3.2.1 xfsdump使用限制 4.分析日志文件4.1日志文件4.…...

Apipost接口测试工具的原理及应用详解(二)

本系列文章简介: 随着软件行业的快速发展,API(应用程序编程接口)作为不同软件组件之间通信的桥梁,其重要性日益凸显。API的质量直接关系到软件系统的稳定性、性能和用户体验。因此,对API进行严格的测试成为软件开发过程中不可或缺的一环。在众多API测试工具中,Apipost凭…...

「AIGC」大数据开发语言Scala入门

Scala 是一种多范式编程语言,设计初衷是集成面向对象编程和函数式编程的特点。它运行在 Java 虚拟机(JVM)上,因此可以与 Java 库无缝集成。Scala 也因其在大数据处理领域的应用而受到欢迎,特别是与 Apache Spark 这类框架结合使用。 1. 环境搭建 安装 Scala:可以从 Scala…...

2.1 tmux和vim

文章目录 前言概述tmuxvim总结 前言 开始学习的时间是 2024.7.6 ,13:47 概述 最好多使用,练成条件反射式的 直接使用终端的工具,可以连接到服务器,不需要使用本地的软件 tmux 这个主要有两个功能,第一个功能是分…...

运行vue : 无法加载文件 C:\Program Files\nodejs\node_global\vue.ps1,因为在此系统上禁止运行脚本。

报错背景: 重装了win10系统,然后准备安装Vue,这个时候我已经安装好了node.js和npm,输入node -v和npm -v都有正确输出,但是每次输入npm install -g vue/cli 安装的时候,就会报错. 大家安装node.js的时候最好就是默认路径(C:\Program Files\nodejs),别去修改不然很多报错.(个人…...

Lambda架构

1.Lambda架构对大数据处理系统的理解 Lambda架构由Storm的作者Nathan Marz提出,其设计目的在于提供一个能满足大数据系统关键特性的架构,包括高容错、低延迟、可扩展等。其整合离线计算与实时计算,融合不可变性、读写分离和复杂性隔离等原则&…...

数据库作业day3

创建一个student表用于存储学生信息 CREATE TABLE student( id INT PRIMARY KEY, name VARCHAR(20) NOT NULL, grade FLOAT ); 向student表中添加一条新记录 记录中id字段的值为1,name字段的值为"monkey",grade字段的值为98.5 insert into …...

计算机网络——数据链路层(以太网扩展、虚拟局域网、高速以太网)

在许多情况下,我们希望把以太网的覆盖范围扩展。本节先讨论在物理层把以太网扩展,然后讨论在数据链路层把以太网扩展。这种扩展的以太网在网络层看来仍然是一个网络。 在物理层扩展以太网 现在,扩展主机和集线器之间的距离的一种简单方法就是…...

Nuxt 项目集成第三方UI组件库(九)

Nuxt.js 本身并不提供内置的 UI 组件库,它是一个用于构建服务端渲染(SSR)和静态生成(SSG)Vue.js应用的框架。Nuxt.js 的设计目的是提供基础的架构和配置,以便开发者可以根据自己的需求选择和集成第三方 UI …...

vulnhub靶场之Jarbas

1 信息收集 1.1 主机发现 arp-scan -l 发现主机IP地址为:192.168.1.16 1.2 端口发现 nmap -sS -sV -A -T5 -p- 192.168.1.16 存在端口22,80,3306,8080 1.3 目录扫描 dirsearch -u 192.168.1.16 2 端口访问 2.1 80端口 2.2…...

解决onlyoffice警告的一些思路

解决思路&#xff1a; 1、监听出现警告的事件&#xff1a;已经实现 <script setup> import {message} from "ant-design-vue";const onError (event) > {console.log("ONLYOFFICE Document Editor reports an error: code " event.data.error…...

快速上手指南:使用 Minikube 在本地运行 Kubernetes 集群

前言 Minikube 是一个开源工具&#xff0c;用于在本地运行 Kubernetes 集群。它提供了一种简单的方法来在本地开发和测试 Kubernetes 应用程序&#xff0c;而无需设置完整的 Kubernetes 集群。以下是 Minikube 的基本使用步骤&#xff1a; 安装 Minikube 安装依赖项 虚拟化…...

【C语言】指针(1):入门理解篇

目录 一、内存和地址 1.1内存 1.2 深入理解计算机编址 二、指针变量和地址 2.1 取地址操作符&#xff08;&&#xff09; 2.2 指针变量和解应用操作符 2.2.1 指针变量 2.2.2 解引用操作符 2.3指针变量的大小 三、指针变量类型的意义 3.1 指针的解引用 3.1指针-整数…...

经典双运算放大器LM358

前言 LM358双运放有几十年的历史了吧&#xff1f;通用运放&#xff0c;很常用&#xff0c;搞电路的避免不了接触运放&#xff0c;怎么选择运放&#xff0c;是工程师关心的问题吧&#xff1f; 从本文开始&#xff0c;将陆续发一些常用的运放&#xff0c;大家选型可以参考&#…...

adb不插usb线通过wifi调试

说起做手机开发也有好多年了&#xff0c;说来惭愧&#xff0c;我最近才知道安卓手机是可以不插数据线进行开发调试的。起因是公司近期采购了一批安卓一卡通设备&#xff0c;需要对其进行定制开发APP,但是由于我插USB调试发现没有反应。通过询问厂家才知道可以通过WIFI进行调试。…...

vulnhub--IMF

环境 攻击机&#xff1a;192.168.96.4 靶机&#xff1a;ip未知 主机探测 确定靶机ip为32的主机 端口扫描 访问80端口 外围打点 在contact.php页面源码中找到了flag1 之后没啥突破 但查看网络后发现contact.php页面请求的三个js文件的文件名很有特点&#xff0c;猜测是base64编码…...

ePTFE膜(膨体聚四氟乙烯膜)应用前景广阔 本土企业技术水平不断提升

ePTFE膜&#xff08;膨体聚四氟乙烯膜&#xff09;应用前景广阔 本土企业技术水平不断提升 ePTFE膜全称为膨体聚四氟乙烯膜&#xff0c;指以膨体聚四氟乙烯&#xff08;ePTFE&#xff09;为原材料制成的薄膜。ePTFE膜具有耐化学腐蚀、防水透气性好、耐候性佳、耐磨、抗撕裂等优…...

C++与C#创建位图,是否需要区分RGB和BGR模式

在处理位图时&#xff0c;确实需要区分RGB和BGR模式&#xff0c;因为不同的库和API对颜色通道的排序有不同的约定。具体到C与C#&#xff0c;这一点也是需要注意的。 C 创建位图 使用GDI或WIC (Windows Imaging Component): 当你在C中使用这些Windows API创建或操作位图时&…...

web学习笔记(八十)

目录 1.小程序实现微信一键登录 2. 小程序的授权流程 3.小程序配置vant库 4.小程序配置分包 5.小程序配置独立分包 6.小程序分包预下载 1.小程序实现微信一键登录 要先实现小程序一键登录首先我们需要给按钮设置一个绑定事件&#xff0c;然后在绑定事件内部通过wx.login…...

深度解析 Raft 分布式一致性协议

本文参考转载至&#xff1a;浅谈 Raft 分布式一致性协议&#xff5c;图解 Raft - 白泽来了 - 博客园 (cnblogs.com) 深度解析 Raft 分布式一致性协议 - 掘金 (juejin.cn) raft-zh_cn/raft-zh_cn.md at master maemual/raft-zh_cn (github.com) 本篇文章将模拟一个KV数据读写服…...

Android10以上实现获取设备序列号功能

Android10以上实现获取设备唯一标识&#xff0c;目前只支持华为和荣耀设备。实现原理&#xff1a;通过无障碍服务读取序列号界面。 public class DeviceHelper implements Application.ActivityLifecycleCallbacks {static final String TAG "WADQ_DeviceHelper";s…...

从0到1:培训老师预约小程序开发笔记二

背景调研 培训老师预约小程序&#xff1a; 教师和学生可以更便捷地安排课程&#xff0c;并提升教学质量和学习效果&#xff0c;使之成为管理和提升教学效果的强大工具。培训老师可以在小程序上设置自己的可预约时间&#xff0c;学员可以根据老师的日程安排选择合适的时间进行预…...

【FFmpeg】av_read_frame函数

目录 1.av_read_frame1.2 从pkt buffer中读取帧&#xff08;avpriv_packet_list_get&#xff09;1.3 从流当中读取帧&#xff08;read_frame_internal&#xff09;1.3.1 读取帧&#xff08;ff_read_packet&#xff09;1.3.2 解析packet&#xff08;parse_packet&#xff09;1.3…...

女生学计算机好不好?感觉计算机分有点高……?

众所周知&#xff0c;在国内的高校里&#xff0c;计算机专业的女生是非常少的&#xff0c;很多小班30人左右&#xff0c;但是每个班女生人数只有个位数。这就给很多人一个感觉&#xff0c;是不是女生天生就不适合学这个东西呢&#xff1f;女生是不是也应该放弃呢&#xff1f;当…...

windows10/11 如何开启卓越性能模式

在Windows 10和Windows 11中&#xff0c;可以通过以下步骤启用“卓越性能”模式。请注意&#xff0c;卓越性能模式仅在Windows 10 Pro for Workstations和Windows 10 Enterprise版本中可用。 使用命令提示符启用卓越性能模式 打开命令提示符&#xff1a; 按Win X键&#xff0…...

JSP WEB开发(二) JavaBean

目录 JavaBean JavaBean特征 JavaBean的标签 JavaBean 的范围 标签 JavaBean JavaBean 是一种符合某些命名和设计规范的 Java 类&#xff0c;它是一种可重用组件技术&#xff0c;主要用于封装数据&#xff0c;执行负责的计算任务&#xff0c;封装事务逻辑等。JavaBean 的实…...

G2.【C语言】EasyX绘制颜色窗口

1.窗口 窗口&#xff1a;宽度*高度&#xff08;单位都是像素&#xff09; #include <stdio.h> #include <easyx.h> int main() {initgraph(640, 480);getchar();return 0; } 640是宽&#xff0c;480是高 2.操作窗口的三个按钮 #include <stdio.h> #incl…...

异构计算技术与DTK异构开发套件

异构计算技术与DTK异构开发套件 费林分类法&#xff1a;SISD SIMD MISD MIMD 指令流I和数据流D MIMD不同存储结构&#xff1a; UMA均匀存储访问模型NUMA非均匀存储访问模型Cluster集群 现在以Cluster为主 DTK异构开发套件 生态结构 异构并行编程模型是什么 HIP&#xff…...