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

interface接口和defer场景分析

接口

接口这里主要两点:

  1. 设计业务结构时采用依赖倒转:业务层向下依赖抽象层,实现层向上依赖抽象层。

相比于之前:

image-20250519222508020

之后:

image-20250519222151502

  1. 注意struct中嵌套interface和不嵌套interface的区别:

    type Myinterface interface{func Do()
    }// 未嵌套interface
    type Struct1 struct{
    }func (*Struct1) Do(){...}// 嵌套interface
    type Struct2 struct{Myinterface
    }struct1 := &Struct1{}
    struct2 := &Struct2{Myinterface : struct1
    }// 当然,mystruct2在Interface被赋值的前提下,也可以重写部分Myinterface的方法
    func (*Struct2) Do(){...2}// 结果相同,mystruct2直接复用mystruct1的Do方法
    struct1.Do()
    struct2.Do()// 结果改变
    struct2.Do()
    

    注意本质:

    任何实现接口的方式都要全部实现接口的方法,可以组合方法。

defer场景分析

场景:

  1. 执行顺序:栈(先进后出).

  2. defer 和 return 的执行顺序:return 表达式先执行;defer 后执行.

  3. 函数返回值在栈上:①有名 ②作用于整个函数域.

  4. 基于 3,函数遇到 defer 时,defer 会修改基于 return 的值.

  5. defer + panic(不捕获,异常传递,程序异常终止,调用栈正常)

  6. defer + panic(捕获,异常传递中断,原函数继续执行,调用栈恢复)
    总之:panic 后语句不执行.

  7. defer 中有 panic:recover 只捕获一个 panic(最后一个 panic )
    panic 覆盖(后覆盖前).

  8. defer + 子函数:defer function (1, function [2,0]);先执行参数表达式;再执行函数.

  9. defer 压栈时的参数已经确定(形参不变,实参可变).

    eg: 
    {...defer func (i int){fmt.Println(i)                     -> i=0fmt.Println(t)   		           -> t=2}(t)t=2 			                       -> t=2return
    }
    defer 压栈时参数已经确定赋值给 i,i为0,然后被修改为2,则t=2
    

相关文章:

  • 深入理解动态规划:从斐波那契数列到最优子结构
  • ORPO:让大模型调优更简单高效的新范式
  • Ubuntu——配置静态IP
  • python next 函数
  • 大模型训练计算显存占用
  • 部署springBoot项目的脚本-linux
  • 【MYSQL】基本查询,表的增删查改
  • 树莓派系列教程第八弹:结合 ESP32-CAM 实现远程摄像头监控
  • Effective C++阅读笔记(item 1-4)
  • 【Vue】路由2——编程式路由导航、 两个新的生命周期钩子 以及 路由守卫、路由器的两种工作模式
  • 网络工程师案例分析
  • 【Android】一键创建Keystore + Keystore 参数说明 + 查询SHA256(JDK Keytool Keystore)
  • 从 “龟速” 到流畅,英国 - 中国 SD-WAN 专线让分公司直连总部系统
  • js逆向反调试的基本 bypass
  • 智慧招生:实时数字人在院校招生中的应用
  • 深度学习实战107-基于Qwen3+GraphRAG+Agent的智能文档管理系统:精准问答与决策支持
  • 【OSS】如何使用OSS提供的图片压缩服务
  • 大二周周练翻译
  • 动态规划-LCR 089.打家劫舍-力扣(LeetCode)
  • 多类别异常检测新SOTA-MVMCAD
  • 长沙至赣州高铁初步设计获批,可填补湘赣两省斜向交通空白
  • 全球前瞻|特朗普19日将与俄乌总统分别通话,英国脱欧后首开英欧峰会
  • 科普|认识谵妄:它有哪些表现?患者怎样走出“迷雾”?
  • 俄乌代表团抵达谈判会场
  • 德州国资欲退出三东筑工,后者大股东系当地房企东海集团
  • 侵害孩子者,必严惩不贷!3名性侵害未成年人罪犯今日执行死刑