MySQL——存储过程和函数从零基础到入门必学教程(涵盖基础实战)

文章目录

  • 目录

    文章目录

    前言

    一、创建存储过程

    二、在存储过程中使用变量

            1.定义变量

             2.为变量赋值

    三、光标的使用

    1.打开光标

    2.打开光标

    3.使用光标

    4.关闭光标

    四、流程控制的作用

    1.IF语句

    2.CASE语句

    3.LOOP语句

    4.LEAVE语句

    5.ITERATE语句

    6.REPEAT语句

    7.WHILE语句

    五、流程控制综合运用

    六、查看存储过程

    七、存储过程的删除

    总结


前言

        存储过程和函数是在数据库中定义的一些SQL语句的集合,然后直接调用这些存储过程和函数来执行已经定义好的SQL语句。存储过程和函数可以避免开发人员重复编写相同的SQL语句。而且,存储过程和函数是在MySQL服务器中存储和执行的,可以减少客户器端和服务端的数据传输。

        通过本次的学习,将了解存储过程的定义、作用,还可以了解创建、使用、查看、修改及删除存储过程及函数的方法。


一、创建存储过程

        创建存储过程和函数是指将经常使用的一组SQL语句组合在一起,并将这些SQL语句当作一个整体存储在MySQL服务器中。存储程序可以分为存储过程和函数。在MySQL中创建存储过程使用的语句CREATE PROCEDURE。其语法形式如下:

        CREATE PROCEDURE procedure_name([proc_param[,…]])   

                 routine_body  

        在上述语句中,参数procedure_name表示所要创建的存储过程名字,参数proc_param表示存储过程的参数,参数routine_body表示存储过程的SQL语句代码,可以用BEGIN…END来标志SQL语句的开始和结束。

        提示: 在具体创建存储过程时,存储过程名不能与已经存在的存储过程名重名,实战中推荐存储过程名命名为procedure_xxx或者proc_xxx。

        proc_param中每个参数的语法形式如下:

                    [IN|OUT|INOUT] param_name type

        在上述语句中,每个参数由三部分组成,分别为输入/输出类型、参数名和参数类型。其中,输入/输出类型有三种类型,分别为IN(表示输入类型)、OUT(表示输出类型)、INOUT(表示输入/输出类型)。param_name表示参数名;type表示参数类型,可以是MySQL软件所支持的任意一个数据类型。

【示例11-1】

mysql>  use school;   #选择数据库school                                            

mysql> DELIMITER $$                                                                                

mysql> create PROCEDURE  proc_delete_student (IN sid int )                                  

        BEGIN

         declare cid  int ;   #定义变量cid                           

   Select class_id into cid from student where id = sid; #通过查询语句设置变量                                                                      

         delete from grade where id = sid;  #删除成绩表中的记录 

         delete from student where id = sid;   #删除学生表中的记录                                                    

         update class set count=count-1 where id = cid; #更新班级表中的记录  

        END;                                                                       

        $$                                                                          

         DELIMITER ;                                                                

mysql>  call proc_delete_student(2);    #调用存储过程                                                          

二、在存储过程中使用变量

        在存储过程和函数中,可以定义和使用变量。用户可以使用关键字DECLARE来定义变量,然后为变量赋值。这些变量的作用范围是在BEGIN…END程序段中。

        1.定义变量

                在MySQL中,可以使用DECLARE关键字来定义变量。定义变量的基本语法如下:

                    DECLARE var_name[,…] type [DEFAULT value]  

                其中,关键字DECLARE是用来声明变量的;参数var_name是变量的名称,可以同时定义多个变量;参数type用来指定变量的类型;DEFAULT value子句将变量默认值设置为value,没有使用DEFAULT子句时,默认值为NULL。

                定义变量cid,数据类型为INT型,默认值为10,代码如下:

                  DECLARE cid INT DEFAULT 10;   

         2.为变量赋值

                在MySQL中可以使用关键字SET来为变量赋值,SET语句的基本语法如下:

                    SET var_name=expr[,var_name=expr]…

                其中,关键字SET用来为变量赋值;参数var_name是变量的名称;参数expr是赋值表达式。一个SET语句可以同时为多个变量赋值,各个变量的赋值语句之间用逗号隔开。

                例如,将变量tmp_id赋值为88,代码如下:

                SET tmp_id = 88;

                在MySQL中,还可以使用SELECT…INTO语句为变量赋值。其基本语法如下:

                     SELECT col_name[,…] INTO var_name[,…]    

                     FROM table_name WHERE condition        

            其中,参数col_name表示查询的字段名称;参数var_name是变量的名称;参数table_name指表的名称;参数condition指查询条件。

        【示例11-2】从表employee中查询id为3的记录,将该记录的id值赋给变量tmp_id,代码如下:

            SELECT id INTO tmp_id

                FROM grade WEHRE id=sid;        

mysql>  use school;   #选择数据库school                                            

mysql>  drop  PROCEDURE if exists query_student_class_info;                                                                             

mysql> DELIMITER $$                                                                               

mysql> create procedure  query_student_class_info (IN sid int, OUT cname varchar(128), OUT ccount  int)                                   

        BEGIN  

            declare tmp_name varchar(128);

            declare tmp_count int;

            declare tmp_cid  int;

            select class_id into tmp_cid from student where id = sid;        

            select name, count into tmp_name, tmp_count from class where id = tmp_cid;

            set cname = tmp_name, ccount = tmp_count;

         END;   

         $$                                                                          

         DELIMITER ;                                                                 

mysql>  call query_student_class_info(4, @name, @count);    #调用存储过程 

mysql>  select @name, @count;                                                        

三、光标的使用

        查询语句可能查询出多条记录,在存储过程和函数中使用光标来逐条读取查询结果集中的记录。有些书上将光标称为游标。光标的使用包括声明光标、打开光标、使用光标和关闭光标。光标必须声明在处理程序之前,并且声明在变量和条件之后。

1.打开光标

        在MySQL中,可以使用DECLARE关键字来声明光标,其基本语法如下:

                    DECLARE cursor_name CURSOR        

                    FOR select_statement;                 

        其中,参数cursor_name表示光标的名称;参数select_statement表示SELECT语句的内容。

        【示例11-2】下面声明一个名为cur_student的光标,代码如下:

mysql>use school;#选择数据库                                                                                                                      

mysql> DELIMITER $$                                                                                

mysql> create procedure  query_student (IN sid int, OUT cname varchar(128), OUT class_id  int )                                     

        BEGIN                                                 

            DECLARE cur_student CURSOR                    

                FOR SELECT name, class_id FROM  student;   

         END;                                                 

         $$                                                                          

         DELIMITER ;                                                                                                                        

        在上面的示例中,光标的名称为cur_student;SELECT语句部分是从表student中查询出字段name和class_id的值。

2.打开光标

        在MySQL中,使用关键字OPEN来打开光标,其基本语法如下:

            OPEN cursor_name;

        其中,参数cursor_name表示光标的名称。

        下面代码打开一个名为cur_student的光标,代码如下:

            OPEN cur_student;

3.使用光标

          FETCH cursor_name

              INTO var_name[,var_name…];

        其中,参数cursor_name表示光标的名称;参数var_name表示将光标中的SELECT语句查询出来的信息存入该参数中。var_name必须在声明光标之前就定义好。

use school;   #选择数据库school

DELIMITER $$ 

create procedure query_student (IN sid int, OUT cname varchar(128), OUT cid int)                                                                                   

BEGIN

        declare tmp_name varchar(128);

        declare tmp_cid int;

        declare done int default 0;

        declare cur_student CURSOR FOR SELECT name,class_Id from student where id=sid;

        declare continue handler for not found set done = 1; #将结束标志绑定到游标上

        open  cur_student;

         select done;

        fetch cur_student into tmp_name, tmp_cid;

        select done;

         select tmp_name, tmp_cid;

         close cur_student; 

          set cname = tmp_name, cid = tmp_cid;

        END;

        $$

        DELIMITER ;

4.关闭光标

        在MySQL中,使用关键字CLOSE来关闭光标,其基本语法如下:

            CLOSE cursor_name;

        其中,参数cursor_name表示光标的名称。

        例如: 关闭一个名为cur_student的光标,代码如下:

            CLOSE cur_student;

        在上面的示例中,关闭了这个名称为cur_student的光标。关闭了之后就不能使用FETCH来使用光标了。提示

        如果存储过程或函数中执行了SELECT语句,并且SELECT语句会查询出多条记录,这种情况最好使用光标来逐条读取记录,光标必须在处理程序之前且在变量和条件之后声明,而且光标使用完毕后一定要关闭。

四、流程控制的作用

1.IF语句

        IF语句用来进行条件判断。根据条件执行不同的语句。其语法的基本形式如下:

IF search_condition THEN statement_list      

[ELSEIF search_condition THEN statement_list] ...

[ELSE statement_list]                          

END  IF                                      

        参数search_condition表示条件判断语句;参数statement_list表示不同条件的执行语句。

---【示例11-4】下面是一个IF语句的示例,代码如下:

 IF age>20 THEN SET @count1=@count1+1;  

    ELSEIF age=20 THEN @count2=@count2+1;

    ELSE @count3=@count3+1;               

  END IF;                                      

        该示例根据age与20的大小关系来执行不同的SET语句。如果age值大于20,将count1的值加1;如果age值等于20,就将count2的值加1;其他情况将count3的值加1。IF语句都需要使用END IF来结束。

#课堂范例

mysql>  use school;   #选择数据库school                                                                                                                         

mysql> DELIMITER $$                                                                               

mysql> create procedure proc_test_if (IN input int, OUT output int)

        begin

            if input>20 then set input=input+1;

            elseif input=20 then  set input=input+2;

            else  set input = input+3;

            end if;

            set output = input;

        end;

mysql>  $$                                                                                 

mysql>  DELIMITER ;                                                                                                                        

2.CASE语句

        CASE语句可实现比IF语句更复杂的条件判断,其语法的基本形式如下:

CASE case_value                                 

WHEN when_value THEN statement_list           

[ WHEN when_value THEN statement_list ]         

[ELSE statement_list]                              

END CASE                                        

        其中,参数case_value表示条件判断的变量;参数when_value表示变量的取值;参数statement_list表示不同when_value值的执行语句。

---【示例11-5】下面是一个CASE语句的示例。代码如下:

CASE level                                   

      WHEN 20 THEN SET attack = attack + 5; 

      WHEN 30 THEN SET attack = attack + 10;

      WHEN 40 THEN SET attack = attack + 15;

      ELSE SET attack = attack + 1;

END CASE           

        当级别level值为20时,attack值加5;当级别level值为30时,attack值加10;当级别level值为40时,attack值加15;否则,attack + 1。CASE语句使用END CASE结束。

3.LOOP语句

        LOOP语句可以使某些特定的语句重复执行,实现一个简单的循环。LOOP语句本身没有停止循环,只有遇到LEAVE语句等才能停止循环。LOOP语句的语句形式如下:

   [begin_label:] LOOP            

   statement_list                 

   END LOOP [end_label]         

        其中,参数begin_label和参数end_label分别表示循环开始和结束的标志,这两个标志必须相同,而且都可以省略;参数statement_list表示需要循坏执行的语句。

---【示例11-6】下面是一个LOOP语句的示例,代码如下:

add_num:LOOP                

     SET @count = @count + 1;

END LOOP add_num;           

        该示例循环执行count加1的操作。因为没有跳出循环的语句,这个循环成了一个死循环。LOOP循环都以END LOOP结束。

4.LEAVE语句

        LEAVE语句主要用于跳出循环控制,其语法形式如下:

LEAVE label                 

        其中,参数label表示循环的标志。

---【示例11-7】下面是一个LEAVE语句的示例。代码如下:

add_num: LOOP             

SET @count=@count + 1;

Select @count;

IF @count = 100 THEN

    LEAVE add_num;    

END IF;

END LOOP add_num;        

        该示例循环执行count值加1的操作。当count的值等于100时,LEAVE语句跳出循环。

5.ITERATE语句

        ITERATE语句也是用来跳出循环的语句,但是ITERATE语句是跳出本次循环,然后直接进入下一次循环,ITERATE语句的语法形式如下:

  ITERATE label 

        其中,参数label表示循环的标志。

---【示例11-8】下面是一个ITERATE语句的示例。代码如下:

add_num1:LOOP             

    Set @count = @count +1

    IF @count=100 THEN    

        LEAVE add_num1      

    ELSE IF MOD(@count, 3) = 0 then

        ITERATE add_num1;  

     Select * from student;   

END LOOP add_num1;      

        该示例循环执行count加1的操作,count的值为100时结束循环。如果count的值能够整除3,就跳出本次循环,不再执行下面的SELECT语句。

        注意: LEAVE语句和ITERATE语句都用来跳出循环语句,但是两者的功能是不一样的。LEAVE语句是跳出整个循环,然后执行循环后面的程序,和C++ break 相似。ITERATE语句是跳出本次循环,然后进入下一次循环,和C++ continue 相似。使用这两个语句时一定要区分清楚。

6.REPEAT语句

        REPEAT语句是有条件控制的循环语句。当满足特定条件时,就会跳出循环语句。REPEAT语句的基本语法形式如下:

[begin_label:] REPEAT       

        statement_list;      

     UNTIL search_condition

END REPEAT [end_label]     

        其中,参数statement_list表示循环的执行语句;参数search_condition表示结束循环的条件,满足该条件时循环结束。

---【示例11-9】下面是一个REPEAT语句的示例。代码如下:

REPEAT                       

     SET @count=@count+1;  

     UNTIL @count=100       

END REPEAT;                  

        该示例循环执行count加1的操作,count值为100时结束循环。REPEAT循环都用END REPEAT结束。

7.WHILE语句

        WHILE语句也是有条件控制的循环语句,但WHILE语句和REPEAT语句是不一样的。WHILE语句是当满足条件时执行循环内的语句。WHILE语句的基本语法形式如下:

[begin_label:] WHILE search_condition DO  

        Statement_list                     

END WHILE [end_label]                    

        其中,参数statement_condition表示循环执行的条件,满足该条件时循环执行;参数statement_list表示循环的执行语句。

---【示例11-10】下面是一个WHILE语句的示例。代码如下:

WHILE @count<100 DO      

    SET @count = @count + 1;

END WHILE;                  

五、流程控制综合运用

mysql>  use school;   #选择数据库school

mysql> DELIMITER $$                                                                               

mysql> create procedure query_all_students (IN sid int, OUT cname varchar(128), OUT cid int)

BEGIN

        declare tmp_name varchar(128);    #必须定义在声明光标之前

        declare tmp_cid  int;

         declare  done int default 0;

        declare cur_student CURSOR FOR SELECT name, class_id FROM  student ;

        declare continue handler for not found set done = 1; #将结束标志绑定到游标上

        open  cur_student;

        read_loop:LOOP      #循环读取

        fetch cur_student into tmp_name, tmp_cid;

                IF done=1 then

                        Leave read_loop;

                END IF;

                select tmp_name, tmp_cid;  

        END LOOP read_loop;

        close cur_student;

        set cname = tmp_name, cid = tmp_cid;

END; 

mysql>  $$

mysql>  DELIMITER ;  

【示例11-12】在学生表中插入一条记录,并返回记录的自增长id

mysql>  use school;   #选择数据库school 

mysql> DELIMITER $$  

mysql> create procedure fetch_insert_student_id (IN p_name varchar(128), in p_class_id int, IN p_sex char(1), OUT rid int)

                BEGIN

                        Insert into student (name, class_id, sex) values(p_name, p_class_id, p_sex);

                        select last_insert_id() as rid; 

                END;

mysql>  $$

mysql>  DELIMITER ; 

六、查看存储过程

        存储过程创建以后,用户可以通过SHOW STATUS语句来查看存储过程的状态,也可以通过SHOW CREATE语句来查看存储过程的定义。用户也可以通过查询information_schema数据库下的Routines表来查看存储过程的信息。本节将详细讲解查看存储过程的状态与定义的方法。

1.SHOW STATUS语句查看存储过程

        在MySQL中,可以通过SHOW STATUS语句。其基本语法形式如下:

     SHOW PROCEDURE STATUS  [ like ‘pattern’ ] ; 

        其中,参数PROCEDURE表示查询存储过程;参数LIKE 'pattern'用来匹配存储过程的名称。

图11-13的执行结果显示了存储过程的创建时间、修改时间和字符集等信息。

2.使用SHOW CREATE语句查看存储过程的定义

        在MySQL中,可以通过SHOW CREATE语句查看存储过程的状态,语法形式如下:

    SHOW CREATE PROCEDURE proc_name     

        其中,参数PROCEDURE表示查询存储过程;参数proc_name表示存储过程的名称。

---【示例11-14】查询名为proc_delete_student的存储过程的状态,代码如下,执行结果如下图所示。

    SHOW CREATE PROCEDURE proc_delete_student \G

3.从information_schema.Routine表中查看存储过程的信息

        存储过程和函数的信息存储在information_schema数据库下的Routines表中。可以通过查询该表的记录来查询存储过程和函数的信息。其基本语法形式如下:

        SELECT * FROM information_schema.Routines

         Where ROUTINE_NAME = ‘proc_name’;

        其中,字段ROUTINE_NAME是Routines 存储存储过程和函数的列名称;参数proc_name表示存储过程或函数的名称。

---【示例11-15】下面从Routines表中查询名为proc_delete_student的存储过程信息,具体SQL代码如下,执行结果如下图所示。

select routine_definition from information_schema.Routines where         routine_name='proc_delete_student';

七、存储过程的删除

        在MySQL中删除存储过程通过SQL语句DROP完成:

    DROP PROCEDURE proc_name;            

        在上述语句中,关键字DROP PROCEDURE用来表示实现删除存储过程,参数proc_name表示所要删除的存储过程名称。

---【示例11-16】执行SQL语句DROP PROCEDURE,删除存储过程对象proc_delete_student,具体步骤如下:

    DROP PROCEDURE proc_delete_student;


总结

                以上就是我的学习总结。

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:/a/15552.html

如若内容造成侵权/违法违规/事实不符,请联系我们进行投诉反馈qq邮箱809451989@qq.com,一经查实,立即删除!

相关文章

浅述 国产仪器 1761程控模块电源

1761程控模块电源是在自动测试环境中提供偏置功率和对部件或最终产品提供激励的理想设备&#xff0c;是测试系统必备的测试仪器。适用于研发、设计、生产制造等自动测试领域。 1761程控模块电源为用户选配电源提供了灵活性&#xff0c;根据需要可选购1&#xff5e;8种&#xff…

五一堵车 | AI“高速”车辆检测轻而易举监测大家安全

点击蓝字关注我们 关注并星标 从此不迷路 计算机视觉研究院 学习群&#xff5c;扫码在主页获取加入方式 计算机视觉研究院专栏 作者&#xff1a;Edison_G 五一节不管是离开小城镇还是进入大城市&#xff0c;每个高速路口都是堵车&#xff0c;现在人工智能愈来愈发达&#xff0c…

linux常用命令大全

作为开发者&#xff0c;Linux是我们必须掌握的操作系统之一。因此&#xff0c;在编写代码和部署应用程序时&#xff0c;熟练使用Linux命令非常重要。这些常用命令不得不会&#xff0c;掌握这些命令&#xff0c;工作上会事半功倍&#xff0c;大大提高工作效率。 一. 文件和目录…

OJ刷题 第十三篇

22102 - 将字符串反序 时间限制 : 1 秒 内存限制 : 128 MB 请将一个给定的字符串反序(字符长度为1到10000&#xff0c;且有可能包含空格)。 输入 反序前的字符串 输出 反序后的字符串 样例 输入 abcd 输出 dcba 答案&#xff1a; C版本1&#xff1a;&#xff08;掌握&…

( 哈希表) 217. 存在重复元素 ——【Leetcode每日一题】

❓217. 存在重复元素 难度&#xff1a;简单 给你一个整数数组 nums 。如果任一值在数组中出现 至少两次 &#xff0c;返回 true&#xff1b;如果数组中每个元素互不相同&#xff0c;返回 false 。 示例 1&#xff1a; 输入&#xff1a;nums [1,2,3,1] 输出&#xff1a;true…

冷链物流运转 3D 可视化监控,助力大数据实时监控

智慧物流是以信息化为依托并广泛应用物联网、人工智能、大数据、云计算等技术工具&#xff0c;在物流价值链上的 6 项基本环节&#xff08;运输、仓储、包装、装卸搬运、流通加工、配送&#xff09;实现系统感知和数据采集的现代综合智能型物流系统。随着冷链信息化、数字化发展…

【Linux】8、查看 Linux 主机运行状态、压缩和解压缩命令、Linux 的环境变量

目录 一、查看 Linux 系统资源占用二、硬盘信息监控三、网络监控命令四、Linux 文件上传和下载命令五、压缩和解压(1) 压缩格式(2) tar 命令 六、Linux 的环境变量 一、查看 Linux 系统资源占用 ✒️ 可通过 top 命令查看系统的 CPU、内存的使用情况&#xff08;类似 Windows …

AutoGPT安装教程

最近安装AutoGPT时遇到了一些问题&#xff0c;写下这篇文章记录一下 1 下载AutoGPT AutoGPT链接&#xff1a;https://github.com/Significant-Gravitas/Auto-GPT/tree/v0.2.2 下载AutoGPT 推荐下载stable 版本 2 申请openai 的api key 获取api的key&#xff0c;这里就不介…

【MySQL高级】——InnoDB索引MyISAM索引

一、索引概述 MySQL官方对索引的定义为&#xff1a;索引&#xff08;Index&#xff09;是帮助MySQL高效获取数据的数据结构。 索引的本质&#xff1a;索引是数据结构。你可以简单理解为“排好序的快速查找数据结构”&#xff0c;满足特定查找算法。 这些数据结构以某种方式指向…

史上最全的接口测试,吐血整理从零到接口自动化实战...

目录&#xff1a;导读 前言一、Python编程入门到精通二、接口自动化项目实战三、Web自动化项目实战四、App自动化项目实战五、一线大厂简历六、测试开发DevOps体系七、常用自动化测试工具八、JMeter性能测试九、总结&#xff08;尾部小惊喜&#xff09; 前言 接口测试&#xf…

C++中的stack容器

文章目录 stack的介绍stack的使用 stack的介绍 stack是一种容器适配器&#xff0c;专门用在具有后进先出操作特性的环境中&#xff0c;只能在容器的一端进行插入删除&#xff1b;stack是作为容器适配器被实现的&#xff0c;容器适配器即是对特性类封装作为其底层的容器&#xf…

SCADA平台的HMI功能

01 前言 虹科Panorama SCADA平台支持桌面HMI、Web HMI和移动HMI的功能。桌面HMI主要是在桌面工作站实现数据可视化&#xff0c;能够获取到最全面的数据信息以及实现功能&#xff1b;Web HMI可以通过在软件中添加Web HMI服务器&#xff0c;运行程序后&#xff0c;可以在Web 客户…

被修饰成单栋的倾斜摄影处理思路

作者&#xff1a;kele 前言 倾斜摄影数据是三维项目系统中的常客。在某些项目中&#xff0c;为了给倾斜摄影上的建筑赋予属性信息&#xff0c;实现点击建筑高亮并展示属性的功能&#xff0c;客户将倾斜摄影数据进行了模型单体化&#xff08;使用pdmodeler或者其它软件&#xf…

Apache Flink

Apache Flink 1 Flink的特点2 流式计算架构2.1 Lambda架构2.2 Kappa架构2.3 IOTA架构 3 Flink部署3.1 Standalone模式3.2 Standalone-HA模式3.3 Flink on Yarn模式3.3.1 Session mode3.3.2 Per-Job mode3.3.3 Application mode 4 Flink运行时的组件4.1 JobManager&#xff08;作…

【嵌入式环境下linux内核及驱动学习笔记-(8-内核 I/O)-信号驱动】

目录 3 信号驱动的异步通知3.1 linux异步通知编程3.1.1 什么是信号3.1.2 信号的工作流程: 3.2. 应用层3.2.1 信号接收 signal函数3.2.2 应用层 fcntl 函数3.2.3 应用层信号驱动机制步骤 3.3 驱动层3.3.1 驱动层模板3.3.2 驱动层 实现fasync函数3.3.3 fasync_helper3.3.4 struct…

从历史天气预报 API 看气象大数据的商业价值

引言 近年来&#xff0c;随着气象观测技术的不断提升和气象大数据的快速发展&#xff0c;越来越多的企业开始将气象数据应用于商业领域。其中&#xff0c;历史天气预报 API 作为一种可获取历史气象数据的接口&#xff0c;具有广泛的商业应用价值。 本文将从历史天气预报 API …

Delphi 知识 彻底搞懂Delphi中的匿名方法

前言&#xff1a; 顾名思义&#xff0c;匿名方法是一个没有与之相关的名字的过程或函数。一个匿名方法将一个代码块视为一个实体&#xff0c;可以分配给一个变量或作为一个方法的参数使用。此外&#xff0c;匿名方法可以引用变量&#xff0c;并在定义该方法的上下文中为变量绑定…

【Unity入门】19.定时调用Invoke

【Unity入门】定时调用Invoke 大家好&#xff0c;我是Lampard~~ 欢迎来到Unity入门系列博客&#xff0c;所学知识来自B站阿发老师~感谢 &#xff08;一&#xff09;计时器 &#xff08;1&#xff09;Invoke 单词调用 计时器我们并不陌生&#xff0c;在cocos上有着schedule类是…

056:cesium 七种方法设置颜色

第056个 点击查看专栏目录 本示例的目的是介绍如何在vue+cesium中设置颜色,这里用到了7种方法,查看API,还有很多种方法 直接复制下面的 vue+cesium源代码,操作2分钟即可运行实现效果. 文章目录 示例效果配置方式示例源代码(共115行)相关API参考:专栏目标示例效果 配置…

【C++】map和set的模拟实现

一、思路 1. 改造RBTree 现在我们有一棵 R B T r e e RBTree RBTree&#xff0c;那么如何用它实现 m a p map map和 s e t set set&#xff1f;我们知道 m a p map map是 KV 结构&#xff0c; s e t set set是 K 结构&#xff0c;传统思路是两份 R B T r e e RBTree RBTree的代…