• viple入门(五)


    (1)自定义活动

    自定义活动,用来创建新的组件、服务、函数或者其他代码模块,使用最多的是创建函数。

    函数是对一个功能的封装,在调用的时候执行,没有调用的时候则不执行。函数可能有参数,可能没有参数,如果有参数,则是形式参数,主要用于占位置。在调用时,如果函数有形式参数,则需要传递实际参数,即传参。

    在viple中,把活动拖到Main中,即为调用。

    自定义活动中,可以没有形式参数,也可以有一个形式参数,也可以有多个形式参数。

    1.创建自定义活动

    拖一个自定义活动到Main中,右键选择Rename进行重命名,命名要根据封装的功能来进行命名,达到见名之意的目的。

    在自定义活动print上双击,进入print自定义活动中,找到Modify Inputs右侧的黄色按钮,点击该按钮可创建形式参数。

    第1种情况:不传递参数

    进入print自定义活动后,不创建形式参数。直接编写逻辑即可

    Main中拖入一个数据,并将值写为2。将数据传入到自定义活动print中,弹出数据连接,左边的Value对应的是实际参数,右边的Taget对应的是形式参数,由于没有参数传递,所以,实际参数和形式参数都是空白,点击确定即可

    效果:

    该程序等价于以下程序:

    上面的程序,不过是把行打印封装到了自定义活动print中而已。其他的地方需要打印的时候,可以复用自定义活动print,实现了对打印功能的封装。

    第2种情况:传递1个形式参数

    上一个案例中,没有进行传参,所以,程序可以直接改为为不带有自定义活动的形式。

    假设有一个需求,有的人要打印数字1、有的人要打印数字2、还有的人要打印数字3

    还有可能:有的人打印1颗星(*),有的人打印2颗星(**),有的人打印3颗星(***)

    不使用自定义活动,则程序如下:

    但是,如果我们要打印是100嘞,10000颗星嘞,使用拷贝复制的方法,肯定能做,但程序就比较庞大了,且需要大量的时间。此时,我们需要使用循环和自定义活动来解决该问题。

    首先创建一个自定义活动,用于打印数字N,当传入的是1,则打印1,;传入的是2,则打印2,闯入的是3,则打印3,传入的是n,则打印n。现在不知道具体打印数字几,所以,设置一个形式参数占位置。

    编写打印n的逻辑

    需要注意的是,由于该自定义活动会用到多次,且后期打算放在循环中,所以,打印后,需要将输出连接到右侧的三角形位置(三角形表示输出值,Outgoing value;圆圈表示通知,即notifications,在自定义事件中会用到)

    注意:形式参数的引用方法为:instance.形式参数名称

    Main中编写循环,获取到数字1、2、3,并分别将这三个数传入printN中即可,所以,首先需要使用循环打印出数字1、2、3

    接下来,把图中的

    修改为自定义活动,也就是

    根据Target中的形式参数n去找对应的实际参数number,并填写上,实现参数传递

    整体程序以及测试结果如下:

    第3种情况:传递2个形式参数

    假设需要计算两个数相加,此时,不知道具体是哪两个数相加,所以,需要设置两个形式参数占位置,整体的自定义活动就是做加法功能,综上,自定义活动的名称可以设置为add,形式参数有两个,可以分别设置为a和b。注意:形式参数a和b的类型是整型,后面传递参数的时候,实际参数的类型也必须为整型。

    编写两个数相加的逻辑

    接下来进入Main中,编写实际参数

    传递参数:将与并活动的输出连接到自定义活动add的输入,弹出数据连接窗口,此时,根据Target中的形式参数去找对应的实际参数,a表示的第一个加数,对应的实际参数是first,所以,将first写在Value侧的第一个位置,表示的含义是:占位的形参a,对应的实际参数是first,因为first的值是100,所以a的值就是100了,。同样的道理,b对应的是second,其值为200。

    将计算结果打印并测试

    如果将数据活动中的两个值分别改为300,400,则计算结果为700。

    (2)自定义事件

    事件分为两种类型,内建事件和自定义事件,在之前的博客中已经写了内建事件(按键事件和释键事件)

    自定义事件:系统没有封装好的事件,需要用户自行定义如何触发。

    简单的自定义事件案例:

    首先创建自定义活动,内容为数据活动,并将值写为2,将输出连接到圆形(触发事件,并且能将值一并返回

    程序分析:数据活动连接到圆形,可以触发事件,并且输出值2,触发到自定义事件后,将数据2进行了打印。

    稍微复杂的自定义事件案例:

    案例:当计数器数到8的时候,触发自定义事件,并执行后续程序。

    由于需要传递一个参数进来,故在自定义活动test中设置一个形式参数,来接收外部的数据8。

    Main中:

    测试

  • 相关阅读:
    pygame绘制梯形 使用polygon函数
    可变参数函数,initializer_list,省略号形参
    【鸿蒙开发】第十七章 Web组件(一)
    Hive学习笔记1
    计算机组装与维护实训室解决方案
    [排序]leetcode1636:按照频率将数组升序排序(easy)
    2021年上半年软件设计师下午真题及答案解析(二)
    LeetCode刷题---合并两个有序链表
    【数据结构】二叉树 (Binary Tree)
    Webpack最佳实践
  • 原文地址:https://blog.csdn.net/songxiaolingbaobao/article/details/134265606