Lua极简入门(六)——函数的参数

Lua极简入门(六)——函数的参数,第1张

函数定义完成后,那么函数的调用方式,完成的功能,以及返回值都将固定。此时就剩下调用了,对于调用函数,只需要关注参数,并按要求设置参数,并接收返回值,这样函数的整个流程就完成了。

在Lua中,支持可变参数定义,即在函数使用过程中,传递的参数是可以变化的,可不传、传递一个、两个等等。比如需要计算一组数字的累加,那么数字的个数是不固定的。通常会定义一个函数,接收一个 table ,将不固定的数字存储到 table 中,并作为实参传入到函数中,实现累加需求:

函数定义完成后,在使用之前,先将数字添加到一个 table 中,之后完成调用

以上按传统的方式实现了不固定数字的累加函数定义。对于Lua,可以使用可变参数的定义方法,完成不固定数字累加的方法,这种实现及调用时更加方便,毕竟不用在声明 table 并组织参数:

上面Lua的可变参数定义,与传统函数(参数为 table )定义方式相比,基本上一致,只是将参数 table 变更为了 三个点。虽然函数定义时,没有太大变化,但是在调用时,将完全不同。

三个点 作为表达式,可以在函数中直接使用,但在使用时,会将所有的可变参数全部返回。

在定义函数过程中,可变参数也可以和固定位置的参数混用,但可变参数必须在最后位置。

在前面,已经使用可变参数 作为表达式,将其值全部返回,并赋给新的变量;也可以将可变参数转为数组 {} ,并遍历使用可变参数。Lua在这两种读取可变参数之外,还提供了 select 函数,用于访问变长参数。该函数的定义方式为 select(index,) ,即第一个位置为固定参数,值包含两种取值: number 和 # ,如果传递数值,则表示获取可变参数指定位置的参数,如果为 # ,则返回可变参数的长度;第二个参数为可变参数本身,仍使用 表示。

上述中,无法使用 table 获取到传递的 nil 。为了解决这个问题,可以使用 select 以便获取参数总长度,以及指定位置的参数。

可变参数,在使用过程中,当作为表达式时,完全等价于原始可变参数,因此可变参数,在一些需要记录日志时,有着非常良好的应用场景,比如类似于Spring切面记录日志的方式,可以使用Lua的可变参数来进行模拟

在Python中,有一种关键词参数,在调用时允许使用关键字对参数进行限定,并提供必要的检查手段,对于程序的扩展,有着良好的作用,如下:

在Lua中,并不具备命名参数的功能,但是可以使用 table 进行模拟实现,并且当参数只有一个时,Lua允许直接跟 table ,因此从实用上可以实现类似的效果。

1、查看应用程序设置:在应用程序中查找相关的设置选项,看是否可以关闭一键呼叫页面或者禁用相关的功能。

2、升级或更新应用程序:有些应用程序可能会在更新版本中提供更多的自定义选项和优化,可以尝试升级或更新程序,看是否有所改善。

3、使用其他应用程序替代:如果当前应用程序无法满足需求,可以考虑寻找其他类似的应用程序,并比较它们的功能和特点,选择最适合自己的应用程序。

miui14默认极简桌面是一款极简风格的桌面,它拥有简洁的界面,支持多种小部件,可以自定义桌面布局,支持多种主题,可以自定义桌面背景,支持多种桌面小部件,可以自定义快捷方式,支持多种桌面搜索,可以自定义桌面搜索结果,支持多种桌面排序,可以自定义桌面排序方式,支持多种桌面 *** 作,可以自定义桌面 *** 作方式,支持多种桌面插件,可以自定义桌面插件,支持多种桌面模式,可以自定义桌面模式,支持多种桌面分组,可以自定义桌面分组,支持多种桌面拖拽,可以自定义桌面拖拽,支持多种桌面滑动

Python的优点

1) 语法简单

和传统的 C/C++、Java、C# 等语言相比,Python 对代码格式的要求没有那么严格,这种宽松使得用户在编写代码时比较舒服,不用在细枝末节上花费太多精力。我来举两个典型的例子:

Python 不要求在每个语句的最后写上分号,当然写也没错;

定义变量时不需要指明类型,甚至可以给同一个变量赋值不同类型的数据。

上述两点也是 PHP、JavaScript、MATLAB 等常见脚本语言都具备的特性。

Python 是一种代表极简主义的编程语言,阅读一段排版优美的 Python 代码,就像在阅读一个英文段落,非常贴近人类语言,所以人们常说,Python 是一种具有伪代码特点的编程语言。

伪代码(Pseudo Code)是一种算法描述语言,它介于自然语言和编程语言之间。编写伪代码的目的是为了使被描述的算法可以更容易地以任何一种编程语言实现,比如 C、C++、Java 等。因此,伪代码必须结构清晰、代码简单、可读性好,并且类似于自然语言。如果你学过数据结构,阅读过严蔚敏的书籍,那你一定知道什么是伪代码。

为什么说简单就是杀手锏?一旦简单了,一件事情就会变得很纯粹;我们在开发 Python 程序时,可以专注于解决问题本身,而不用顾虑语法的细枝末节。在简单的环境中做一件纯粹的事情,那简直是一种享受。

2) Python 是开源的

开源,也即开放源代码,意思是所有用户都可以看到源代码。

Python 的开源体现在两方面:

① 程序员使用 Python 编写的代码是开源的。

比如我们开发了一个 BBS 系统(即网络论坛),放在互联网上让用户下载,那么用户下载到的就是该系统的所有源代码,并且可以随意修改。这也是解释型语言本身的特性,想要运行程序就必须有源代码。

② Python 解释器和模块是开源的。

官方将 Python 解释器和模块的代码开源,是希望所有 Python 用户都参与进来,一起改进 Python 的性能,弥补 Python 的漏洞,代码被研究的越多也就越健壮。

这个世界上总有那么一小撮人,他们或者不慕名利,或者为了达到某种目的,会不断地加强和改善 Python。千万不要认为所有人都是只图眼前利益的,总有一些精英会放长线钓大鱼,总有一些极客会做一些炫酷的事情。

3) Python 是免费的

开源并不等于免费,开源软件和免费软件是两个概念,只不过大多数的开源软件也是免费软件;Python 就是这样一种语言,它既开源又免费。

如果你想区分开源和免费的概念,请猛击:开源就等于免费吗?用事实来说话

用户使用 Python 进行开发或者发布自己的程序,不需要支付任何费用,也不用担心版权问题,即使作为商业用途,Python 也是免费的。

4) Python 是高级语言

这里所说的高级,是指 Python 封装较深,屏蔽了很多底层细节,比如 Python 会自动管理内存(需要时自动分配,不需要时自动释放)。

高级语言的优点是使用方便,不用顾虑细枝末节;缺点是容易让人浅尝辄止,知其然不知其所以然。

5) Python 是解释型语言,能跨平台

解释型语言一般都是跨平台的(可移植性好),Python 也不例外,我们已经在《编译型语言和解释型语言的区别》中进行了讲解,这里不再赘述。

5) Python 是面向对象的编程语言

面向对象(Object Oriented)是大多数“现代”语言(即第三代编程语言)都具备的特性,否则在开发中大型程序时会捉襟见肘。

Python 虽然支持面向对象,但它并不强制你使用这种特性。Java 是典型的面向对象的编程语言,它强制必须以类和对象的形式来组织代码。除 Python 和 Java 外,C++、C#、PHP、RuBy、Perl 等,也都支持面向对象的特性。

除了面向对象的编程语言外,还有一种面向过程的编程语言,其中最典型的代表就是 C 语言。

6) Python 功能强大(模块众多)

Python 的模块众多,基本实现了所有的常见的功能,从简单的字符串处理,到复杂的 3D 图形绘制,借助 Python 模块都可以轻松完成。

Python 社区发展良好,除了 Python 官方提供的核心模块,很多第三方机构也会参与到模块的开发中,这其中就有 Google(谷歌)、Facebook(脸书)、Microsoft(微软) 等软件巨头。

在 Python 中,即使是一些小众的功能,它往往也有对应的开源模块,甚至有可能不止一个。

7) Python 可扩展性强

Python 的可扩展性体现在它的模块,Python 具有脚本语言中最丰富、强大的库或模块,这些库或模块覆盖了文件 *** 作、图形界面编程、网络编程、数据库访问等绝大部分应用场景。

值得注意的是,这些类库的底层代码不一定都是 Python,还有很多 C/C++ 的身影。

比如当需要一段关键代码运行速度更快时,就可以使用 C/C++ 语言实现,然后在 Python 中调用它们。Python 能把其它语言“粘”在一起,所以被称为“胶水语言”。

Python 依靠其良好的扩展性,在一定程度上弥补了运行效率慢的缺点。

Python 的缺点

除了上面提到的各种优点,Python 也是有缺点的。

1) 运行速度慢

运行速度慢是解释型语言的通病,Python 也不例外。

Python 速度慢不仅仅是因为一边运行一边“翻译”源代码,还因为 Python 是高级语言,屏蔽了很多底层细节。这个代价也是很大的,Python 要多做很多工作,有些工作是很消耗资源的,比如管理内存。

Python 的运行速度几乎是最慢的,不但远远慢于 C/C++,还慢于 Java。

但是速度慢的缺点往往也不会带来什么大问题。首先是计算机的硬件速度运来越快,多花钱就可以堆出高性能的硬件,硬件性能的提升可以弥补软件性能的不足。

其次是有些应用场景可以容忍速度慢,比如网站,用户打开一个网页的大部分时间是在等待网络请求,而不是等待服务器执行网页程序。服务器花 1ms 执行程序,和花 20ms 执行程序,对用户来说是毫无感觉的,因为网络连接时间往往需要 500ms 甚至 2000ms。

2) 代码加密困难

不像编译型语言那样,源代码会被编译成可执行程序(这个编译过程就相当于对源码加密),对于 Python 来说是直接运行源代码,因此对源码加密是比较困难的

我一般做PC端应用程序或嵌入式领域编程,网页编程实属业余水平。

由于我做的是计算类工具,以JS为主,故风格肯定不能与专业的网页制作一样。

开始只需能用即可,故连CSS都没加。界面非常简洁但非常丑陋。

这个计算器工具在网上流行十数年后,我才学习了CSS,但界面留有PC端软件的影子。

大家还说丑陋,但我绝对这么多的按钮,编辑框,用一般专业的网页真不好做出来。

打开极简待办APP,找到右上角有个手写的按钮点击就可以进行任务编辑。

极简待办是一款非常简约实用的代办事务记录的效率应用软件。不需要复杂的程序,只给你最简明扼要的记录最重要的事件,极其简单的设计,只为您做最好的任务清单。

极简待办app让用户可以看到自己的个人计划,简单明了的色彩展示搭配不同形式的列表,能够让大家更快速的掌握技巧和方式,提高自己的学习或者工作效率,更快的完成自己的任务目标。

以上就是关于Lua极简入门(六)——函数的参数全部的内容,包括:Lua极简入门(六)——函数的参数、极简模式下怎么删除一键呼叫页面、miui14默认极简桌面等相关内容解答,如果想了解更多相关内容,可以关注我们,你们的支持是我们更新的动力!

欢迎分享,转载请注明来源:内存溢出

原文地址:https://www.54852.com/zz/10174824.html

(0)
打赏 微信扫一扫微信扫一扫 支付宝扫一扫支付宝扫一扫
上一篇 2023-05-06
下一篇2023-05-06

发表评论

登录后才能评论

评论列表(0条)

    保存