在函数中使用局部变量并且通过局部变量返回函数值的方案来了

简介: 感谢小游戏可视化体验官群中的一位叫做“@天羽地王”的朋友提供的思路。本文内容主要包括如何在函数中使用局部变量并且通过局部变量来返回函数的结果值。


感谢小游戏可视化体验官群中的一位叫做“@天羽地王”的朋友提供的思路。本文内容主要包括如何在函数中使用局部变量并且通过局部变量来返回函数的结果值。

如果你没有任何的游戏开发经验,欢迎阅读我的“人人都能做游戏”系列教程,它会手把手的教你做出自己的第一个小游戏。


在微信小游戏制作工具中是没有私有函数这个概念的,也就是说所有的函数都是公共的,大家都可以使用,而且函数也没有返回值的概念,想拿到函数运行的结果只能通过设置一个全局变量,将结果存储在全局变量中,然后通过这个全局变量来使用。这种方法有很多的弊端,尤其是在有大量的克隆体存在时,每个克隆体都使用同一个函数,都去设置同一个全局变量,就会造成意想不到的结果。


那么能不能有一个方法,可以在函数中使用局部变量,而且还能使用局部变量去存储函数的返回值呢?办法还真有,只不过弯弯绕了一点儿。


640.png


如图我在基础文字上创建了 3 个局部变量,现在我想要做一个“求和”的函数,作用就是输入两个值,然后返回这两个值的和。


新建一个求和函数,设置 3 个参数,数值 1,数值 2 以及求和结果。我们希望将“数值 1”和“数值 2”相加的结果保存在“求和结果”中,将“求和结果”当作函数的返回值。


640.png


接着,在基础文字上增加如下的逻辑,先调用求和函数,然后显示出“求和结果”的值。


640.png


运行一下,我们来看。


640.png


基础文字上的局部变量“求和结果”竟然是 0,可见,虽然我们在函数中将相加的结果值设置到了“求和结果”变量中,但是函数执行完毕后,“求和结果”变量中并没有保存这个结果值,这种方法行不通。


事实证明使用普通的局部变量存储函数的返回值是不可行的,接下来我们试着使用“列表”这种局部变量试一试。


我们创建一个局部变量“返回值列表”用于存储函数的返回值。


640.png


接着修改一下函数的实现。


7e2592b59478ac7d194adecab984fc96.png


最后,修改一下“基础文字”上的逻辑,函数的参数传入“返回值列表”,然后从“返回值列表”中获取函数计算的结果。


1803492c644992720fdfed56cfa531a8.png


再次预览调试一下。


1c32bf7374bb5fed7130eed20989ced2.png


这次成功了,通过使用“列表”这种局部变量可以在函数中存储值,并且在函数执行结束后,这些值依旧会保留。


那么,如果函数想要有多个返回值如何做呢?假设我们希望这个函数有四个返回值,分别为加,减,乘,除四个结果值。


dc22bf92b5aea0716ff0adfa7bdb9e24.png


继续往列表中插入数值即可,约定好列表的第一项是第一个返回值,第二项是第二个返回值……使用时想获取到哪个返回值直接获取列表的哪一项即可。


既然局部变量“列表”可以用于存储函数的返回值,那么“表格”和“对象”变量是不是也可以呢?是的。


08201a2a108d045c886eb8a4f9322552.png


我们可以通过设置对象的属性来让多个返回值更容易区分和辨认。


调试运行的结果如下:

cb5f2b9febe2801061e412a1e26bbeb6.png


使用“表格”也是一样的道理这里就不多赘述了。


虽然工具没有提供私有函数以及返回值的概念,但是使用这种“曲线救国”的方式基本可以满足在函数中使用局部变量,并且通过局部变量返回函数的结果值的需求了,希望这个方法对你有帮助。


如果你对游戏开发感兴趣,欢迎关注我,如果你有对游戏开发感兴趣的朋友,也欢迎把这个系列文章推荐给他。

相关文章
|
9月前
|
存储 数据可视化 小程序
在函数中使用局部变量并且通过局部变量返回函数值的方案来了
感谢小游戏可视化体验官群中的一位叫做“@天羽地王”的朋友提供的思路。本文内容主要包括如何在函数中使用局部变量并且通过局部变量来返回函数的结果值。 如果你没有任何的游戏开发经验,欢迎阅读我的“人人都能做游戏”系列教程,它会手把手的教你做出自己的第一个小游戏。
68 0
|
C语言
【C 语言】C 项目开发代码规范 ( 形参合法性判断 | 函数返回值局部变量 | 函数中不用全局变量 | 函数中使用局部变量接收形参 | 函数返回值 | 形参作返回值 | 形参返回值处理 )
【C 语言】C 项目开发代码规范 ( 形参合法性判断 | 函数返回值局部变量 | 函数中不用全局变量 | 函数中使用局部变量接收形参 | 函数返回值 | 形参作返回值 | 形参返回值处理 )
217 0
|
9月前
|
存储 C语言 C++
函数的内部处理及全局变量和局部变量
函数的内部处理及全局变量和局部变量
80 0
函数的内部处理及全局变量和局部变量
|
C++ 索引
C++ 在函数中使用静态局部变量,让函数返回数组
C++ 在函数中使用静态局部变量,让函数返回数组
206 0
C++ 在函数中使用静态局部变量,让函数返回数组
|
Python
引用传递函数值
def test1(b): # 变量b一定是一个局部变量,就看它指向的是谁?可变还是不可变 b += b # += 是直接对b指向的空间进行修改,而不是让b指向一个新的 # b = b+b # xx = xx+yyy 先把=号右边的结果计算出来,然后让b指向这个新的地方...
970 0
|
C语言
第8章 函数(三)全局变量和局部变量的概念
      声明:文中观点仅代表个人,其中文字、图片未经本人许可,不得部分或全部转载,违者所造成影响后后果自负!联系本人方式:80368704@qq.com QQ:80368704     我们在前面2节中,实现了3个程序的合并,使1个程序实现了3个功能,实现了我们的最初的想法。
510 0
|
5月前
|
C++
c++引用作为函数参数和函数返回值
c++引用作为函数参数和函数返回值
26 0