38.借用与引用

/*
1.rust中借用和引用的附带功效都一样,就是都有生命周期。借用使用&关键字,引用使用ref关键字。借用的对象是必须存在的,引用的对象可以虚拟的,后期附上对象。
2.match的模式匹配上只能使用 ref,在函数声明上只能使用&来表示引用类型
3.非要给区分ref和&到底哪个是引用,哪个是借用。我们可以先从词性划分,引用我归类为名词,而借用归类为动词。&A在表达式上 表示借用A,这是一个动作,那结果就是产出一个引用类型。所以let ref B表示声明了一个引用类型,它只能绑定到某次借用动作上。所以ref 更适合叫引用, &叫借用。

我们在不同情况下解释&的意思:
    在表达式上,表示的是借用。
    在变量绑定上,表示解地址操作与*类似。
    在类型声明上,表示引用类型。
    在模式匹配上,无效关键字

那么ref的通用解释是:
    在表达式上,无效关键字。
    在变量绑定上,表示引用类型。
    在类型声明上,无效关键字。
    在模式匹配上,表示引用类型。

https://www.jianshu.com/p/ac519d8c5ec9
https://www.cnblogs.com/chen8840/p/12699265.html
https://www.jianshu.com/p/7ac48c978624
*/

#![feature(core_intrinsics)]

fn print_type_name_of<T>(_: T) {
    println!("{}", unsafe { std::intrinsics::type_name::<T>() })
}

fn test1() {
    let ref a1: i32;
    //a = 1;  expected `&i32`, found integer help: consider borrowing here: `&1`
    a1 = &1;
    print_type_name_of(a1); //&i32

    let ref a2 = 1;
    print_type_name_of(a2); //&i32

    let ref a3 = &1;
    print_type_name_of(a3); //&&i32

    let c = 'Q';
    // 赋值语句中左边的 `ref` 关键字等价于右边的 `&` 符号。
    let ref ref_c1 = c;
    let ref_c2 = &c;
    println!("ref_c1 equals ref_c2: {}", *ref_c1 == *ref_c2);

    //& 与 * 的关系, 那么&用在绑定上是怎么样的?其实&用在绑定上与*用在表达式上是一样的:
    let r1 = &1;
    print_type_name_of(r1); //&i32
    let &r2 = r1;
    print_type_name_of(r2); //i32
    let r3 = *r1;
    print_type_name_of(r3); //i32
}

fn test2() {
    fn f1(_s: &String) {
        println!("{:p}", _s);
    }

    fn f2(ref _s: String) {
        println!("{:p}", _s);
    }

    let s = String::from("hello");
    let sref1 = &s;
    let ref sref2 = s;
    println!("{:p}", sref1);
    println!("{:p}", sref2);

    f1(&s);
    f2(s);
}

fn test3() {
    let x = &false;
    print_type_name_of(x);

    let &x = &false;
    print_type_name_of(x);

    let ref x = false;
    print_type_name_of(x);

    let ref x = &false;
    print_type_name_of(x);
}

fn test4() {
    let os = Some(String::from("s"));
    match os {
        //Some(s) => {      如果这样写下面的打印信息将不可编译 : value borrowed here after partial move
        Some(ref s) => {
            print_type_name_of(s); //&alloc::string::String
        }
        _ => (),
    };
    println!("{:?}", os);

    let os = &Some(String::from("s"));
    match os {
        Some(s) => {
            print_type_name_of(s); //&alloc::string::String
        }
        _ => (),
    };
}

fn main() {
    test1();
    test2();
    test3();
    test4();
}

 

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
1. 目的与适用范围 本程序对生产设备的全过程进行控制和管理。确保设备处于完好的运行状态,以保障生 产正常顺利进行。 本程序适用于本公司所有生产设备的控制和管理。 2. 引用文件 2. 1 JDQP 7.1-01《产品质量先期策划控制程序》 2.2 JDQP 7.1-02《生产件批准程序》 2.3 JDQP 8.5-01《持续改进控制持续》 3.职责 3.1 设备计量部负责生产设备的控制和管理。 3.2设备操作人负责设备的准确使用和日常维护保养工作。 4.程序 4.1 申购 4.1.1根据产品质量先期策划过程中,产品试制后批量性生产要求、工艺要求或生产设备 陈旧,失效后的更新由提出申购的部门填写(JDQP-7.5-03- 02《设备添置·更新·改造项目审批表》,设备部门提出意见,总经理审批后购置.不要时, 还必须执行《生产件批准程序》。 4.2验收 4.2.1由设备管理人员组织有关人员对采购进公司的设备进行验收JDQP 7.5.1-03- 01《设备验收单》,验收内容是以下一项或数项的组合: a. 产品合格证或精度测量记录; b. 有关设备的出厂文件资料,如:技术条件、说明书、原理图等; c. 根据附近清单清点; d. 通过运行情况来判断采购的设备是否满足技术条件或说明书上所阐述的要求; 4.2.2 设备验收后应进行机器能力分析,达到要求后才能投入使用。 4.3 自制设备控制 4.3.1 自制设备设计要求 a. 自制设备设计应由项目工程师提出技术要求,使其满足工艺要求,力争结构简单、 先进、性能可靠。 b. 自制设备设计应根据设计任务书编制设计计划、原理图、经经理批准后实施。 4.3.2 自制设备的验证 a. 自制设备完成后,须附上整套技术资料:电路原理图、整机装配图、材料清单、设 备说明书、检定规程、点检要求等。 b. 自制设备经验证合格后,由设备管理人员、设备制造部门、车间、质保等有关人员 共同参加确认,确认合格后方能交付使用部门使用。 4.4设备管理 4.4.1设备分类原则 按设备在企业中的地位、经济价值、精密状态等将设备划分为A、B、C三个类别: A类 购置价值高(2万元以上),维修复杂,精密度高; C类 购置价值低,结构简单,精度低(2000元以下及低值易耗设备); B类 未列入A、C类的设备,(2000-20000元)。 由设备管理人员根据分类原则对企业设备进行分类,详见A、B、C类设备分类表、 4.4.2 设备台账 4.4.2.1设备台账设有总台账和设备分台账(JDQP7.5.1-03-04)记录。 4.4.4设备编号 4.4.4.1凡列入固定资产的设备,由设备人员对设备进行编号,并对现场的设备装上编号 标牌。 4.5封存与启封 4.5.1对六个月以上不使用的设备由使用部门向设备管理员提出封存申请并填写JDQP 7.5.1-03-10《设备封存单》,由设备管理人员进行核实后办理封存手续。 4.5.2若因生产制造需要启用已封存的生产设备时,由使用部门提出申请,填写JDQP7.5 .1-03- 11《S设备启封单》,设备管理人员启封并注销封存,使用前需检查其完好性并进行机器能 力分析。 4.6 借用或调拨 凡因生产需要借用或调拨生产设备由使用部门到设备管理人员处办理借用或调拨手续。 4.7 维护与保养 4.7.1维护保养大修计划 由设备管理员根据使用频率(累计时间)编制《××年设备维护保养大修计划》JDQP 7.5.1-03-05,经部门管理者审核,总经理批准后实施。 4.7.2维护与保养 操作者在使用设备前必须按规定点检(JDQP7.5.1-03- 06)《设备保养点检卡》,经批准的《维护保养大修计划》分发至车间和设备维修组,操作 者负责设备的一级保养,维修人员负责二级保养,(JDQP7.5.1-03- 07)《设备维护保养大修单》。 4.8设备的维修 4.8.1设备使用者如发现设备操作失控或精度不符合要求时应提请设备管理人员安排修理 ,填写JDQP 7.6-01-06《计量器具与设备维护申请单、维护单》。 4.8.2设备小修或非重要零件更换由本公司设备维修人员进行并记录。 4.8.3本公司无能力检修的由设备管理人员联系单位进行检修,检修后由设备管理人员及 有关人员对该设备进行验收,并做好检修记录。 4.8.4设备进行大修后应进行机器能力分析,达到要求后才能投入使用。 4.9 备件采购 4.9.1由设备管理人员根据维护和修理的需要编制《备件申购单》 JDQP 7.5.1-03- 08,经部门负责人审核,总经理批准后实施。 4.9.2 备件的发放按有关手续进行。 4.10 报废 4.10.1设备经使用一定期限后,精度降低,无使用价值的由使用部门或设备管理人员提 出申请,填写JDQP 7.5.1-03- 09《设备固定
目的 1.1对质量管理体系运行所需文件进行控制,确保文件发布前得到批准,保证文件的充分性和适宜性,并确保文件的更改和现行修订状态得到识别,防止作废文件的非预期使用。 1.2对质量记录进行控制,以提供符合质量管理体系要求的证据。 二、范围 2.1适用于本公司质量管理体系所有文件的控制,包括:手册、程序文件、作业文件、记录及外来文件。 三、职责 四、引用标准 五、内容 5.1文件分类 5.1.1质量管理体系文件分类 5.1.1.1一阶文件:手册 5.1.1.2程序文件 5.1.1.3指导文件 技术文件包括:产品图纸、企业标准、专利、工程规范、工艺文件、检验标准、产品作业指导书及客户提供的产品相关的技术要求文件等; 管理文件包括:绩效考核制度、管理规范等; 外来文件包括:法律法规、行业标准等。 5.1.2质量管理体系文件的受控和发放 5.1.1.4记录 5.2文件的编号 5.2.1一般文件编号(手册、程序文件、管理类指导文件、记录) Q - 发布年份,如16、17 流水号:同阶层文件从001开始 各部门文件受控号:见表1 文件阶层 1手册,2程序,3指导文件,4记录 体系代码:Q质量,E环境,H健康 公司代码 表1:文件受控号及发放部门 总经理 01 销售 04 质量 07 管代 02 研发 05 工程 08 总经办 03 财务 06 生产 09 外审老师 11 项目 10 5.2.2产品命名 5.2.3技术类文件编号(FMEA、CP、 变型代号 产品设计序号 电压等级代号(关键参数),见表3 产品代号(类别),见表2 文件与记录控制程序全文共4页,当前为第1页。 企业代号:V 文件与记录控制程序全文共4页,当前为第1页。 产品设计序号:按产品的设计先后次序以两自然数组成,从01开始自然递增。 变型代号:当产品的结构或某些参数改变,以A、B、C…顺序表示,除"O","I""X""Z"除外以免与阿拉伯数字混淆。 表2 组合仪表 YB 显示屏 XP 传感器 QL 表3 电压等级代号 代号 电压等级 代号 电压等级 0 不使用车上电源 1 12V 2 24V 3 6V&12V通用 4 42V 6 6V 5.2.4图号编号 5.2.4.1产品图纸号编号 - 图纸识别号,见表4 产品型号(成品型号) 5.2.4.2工装、设备图号编号 - 图纸识别号,见表4 工装、设备编号(成品型号) 文件与记录控制程序全文共4页,当前为第2页。表4 文件与记录控制程序全文共4页,当前为第2页。 序号 图纸名称 图纸识别号 用途说明 备注 1 系统图 XT 用于识别产品装配关系及相关借用件信息 2 总图 ZT 明确产品基本状态 3 装配图 ZP 明确总成产品装配关系 4 部件图 01~99 明确部件的装配关系 5 零件图 001~999 明确零件特性 6 设计BOM DBOM 明确产品的材料 7 原理图 YL 明确电气原理信息 8 基板图 JB 明确基板的制造状态 9 基板机械尺寸图 JX 明确基板的尺寸控制信息 10 元件放置图 ZF 明确基板上器件编号 11 元件置放图附页 FY 明确基板上器件编号所对应的应焊装器件规格 12 产品标识图 BS 明确产品的标识内容 13 包装说明书 BZ 明确产品的包装信息 14 烧录文件 HEX 产品程序烧录用 15 芯片软件源代码 COD 16 上位机可执行程序 EXE 17 上位机程序源代码 SFT 18 图样目录 TM 明确产品图纸及涉及数量 19 借用件汇总表 JY 明确该产品借用件的情况 20 外协件汇总表 WX 明确该产品零部件外协情况 21 外购件汇总表 WG 明确该产品零部件外购情况 22 软件变更单 BGD 涉及软件变更时启用 23 软件外部flash烧录文件 BIN 产品烧录用 5.2.5产品技术文件编号 - 文件识别号 产品型号 序号 文件名称 文件识别号 用途说明 备注 1 文件目录 WM 明确技术文件及涉及数量 2 特殊特性清单 TX 明确产品及过程所涉及到的特殊特性 3 设计失效模式及后果分析 DFMEA 对因产品设计不当可能原因造成的失效分析 4 过程失效模式及后果分析 PFMEA 对因过程设计不当可能原因造成的失效分析 5 过程流程图 LC 明确产品制造的流程 6 控制计划 CP 对样件、产品制造中将进行的尺寸测量、材料和性能试验的描述 7 作业指导书 SOP 明确各工序的制造流程、控制点、控制要求及方式、参数特性、作业图示、注意点的文件 8 参数设定表 CS 明确产品参数设定要求 9 检查基准书 JC 对零部件、部件及总成产品进行检查项目及方式方法进行规定的文件 10 产品开发设备、工装清单 SG 对产品开发过程中涉及到的设备、工装、仪器等汇总的表单 11 新增模具一览表 MJ 对产品

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值