猫史档案馆


【kitten启发】函数的角色变量?参数还能这样玩?!

用户:𝙲ℴ𝗌𝔦𝒹ₑ𝑟𝙲ℴ𝗌𝔦𝒹ₑ𝑟查看:0 回复:5 评论:0 创建时间:2023-04-30T14:52:14


你有没有遇到过这种情况:

你的函数需要借助额外变量或者列表才能操作

 

【例子】

函数返回一个东西,在操作的时候,需要一个列表,

所以你创建了一个列表,并在列表上操作

完成后清除列表以便下一次使用

 

完成函数后,你运行函数,发现是成功的

(函数list,参数abcde,把5个参数放进一个列表)

center_image

listOprate是我们制作列表的操作区,把参数放进列表

然后把输出列表的值

center_image

很容易就实现了

但是这里面有一个很大的问题:

这个列表是公共的!任何东西都可以干扰这个列表

“那我可以不动这个列表啊”

不不不,你应该注意的是函数调用与另一个调用期间

它所操作的列表是否会互相干扰

举个例子:一个函数必须调用并等待另一个函数执行完,

这个函数在调用它的函数执行期间,且都使用同一个列表

那么可能会出现矛盾

center_image以上的原因是:

里面的函数先执行然后返回列表给外面的函数时,

外面的列表后调用并清空了列表,导致里面的函数返回了空列表(但实际仍然占一项)

 

如何避免呢?

“把操作区独立就行了呗”

说得好!但是用哪种方法?

“角色变量加克隆体”center_image

az,太浪费资源了吧

多了还卡

而且这是函数,如果使用角色变量那就只能在角色内部使用

....

哦对了,列表

列表可以添加删除东西,内部还可以有列表

那么....center_imagecenter_image

 

这里我们定义了listOprate每一个项都为一个独立的操作区

访问使用一个uselistID找到对应编号的操作区

完成操作后删除操作区

这样就完美解决问题了............吗

 

没错如您所见,这里有重复查找步骤

冗余一向不是我的风格

但是我又不能使用额外的变量储存这个位置

那怎么办呢?

 

<tip>如果您看过我往期启发教程

你会知道下面有什么

 

 

你注意到了吗,参数积木都属于圆形积木

而且图中列表积木右边是个圆框:

center_image

那这意味着,我可不可以把操作列表指向参数?center_image

结论是可行的,

好玩了,请看下面

center_image

这次我们把所有积木放到list_里

把所有参数给它,让它来处理列表

list只管返回东西

 

你知道为什么我加了一个参数吗?

听我讲:所有函数的参数都可以是一个局域变量(只能在函数内使用,并且不会喵扰)

我定义了一个操作区,就是『result』(最后面的)

默认输入是一个空列表,

这样子可以极大地优化我们的操作,节省资源

 

(请脑补所有“?”和返回处都是result,因为我手机拖不动参数)

center_image

这里我们在操作区result执行操作

“诶,我记得参数明明是调用了就无法改了,这怎么可以??”

没错kitten大多数类型的参数没有办法改,但是除了列表(因为参数积木可以填入列表积木)

 

总结:

参数可以被当做列表积木的操作对象操作

参数是可以更改的

参数是独立的,不会受到外界干扰


回复

上一页1 页 / 共 1下一页
私塾­­私塾­­

眼睛和手看懂了,脑子没看懂)))

点赞2


评论


无敌版滑稽战神无敌版滑稽战神

好像看懂了(?

点赞0


评论


私塾­­私塾­­

BUG和特色里面搞出个K5)))

点赞0


评论


追梦ez追梦ez

ddd

点赞0


评论


百川茉月_原名海棠百川茉月_原名海棠

额,看不懂呀······,能给个简易点的吗?emotion_疑问

点赞0


评论