阅读《Lua程序设计(第4版)》---1-1
2021/7/19 17:08:08
本文主要是介绍阅读《Lua程序设计(第4版)》---1-1,对大家解决编程问题具有一定的参考价值,需要的程序猿们随着小编来一起学习吧!
练习1.1:运行阶乘的实例并观察,如果输入的是负数,程序会出现什么问题?试着修改代码来解决问题
function fact(n) if n==0 then return 1 else return n*fact(n-1) end end print("enter a number") a=io.read("*n") print(fact(a))
解:
输入负数程序会无限递归至栈溢出,新的方案
local function fact(n) if n < 0 then print("invalid n") return end if n == 0 then return 1 else return n * fact(n - 1) end end
function fact(n) if n<0 then return -1 elseif n==0 then return 1 else return n*fact(n-1) end end print("enter a number") a=io.read("*n") print(fact(a))
练习1.2:分别使用 -i 参数和 dofile 加载脚本并运行twice示例,你更喜欢哪种方式?
-- 第一种 -- lua.exe -i chapter01/chapter01.lua -- ->twice(2) -- 第二种 -- 直接运行lua.exe -- ->dofile("chapter01/chapter01.lua") -- ->twice(2) --chapter01文件 function twice(x) return 2.0 * x end
解:
个人比较喜欢dofile函数的方式,比较灵活
练习1.3 :你能否列举出其他使用 "--" 作为注释的语言
解:
AppleScript、SQL类语言
练习1.4:以下字符串中哪些是有效的标识符
local ___ = "valid" local _end = "valid" local End = "valid" --local end = "invalid" --local until? = "invalid" --local nil = "invalid" local NULL = "valid" --one-step = "invalid"
解:
___ _end End NULL
练习1.5:表达式 type(nil) == nil 的值是什么?(你可以运行代码来检查下答案)你能解释下原因吗?
解:
print(type(nil) == nil ) --false type函数将 nil 转为了 "nil" 字符串
练习1.6:在不使用函数type的情况下,你如何检查一个值是否为boolean类型?
解:
--检查变量 value的值是否为 boolean 类型,只需检查是否为 true 和 false 即可。
local function isBool(value) return value == true or value == false end print(isBool(false)) print(isBool(true)) print(isBool(1)) print(isBool(nil)) print(isBool("true")) print(isBool("false"))
练习1.7:考虑如下的表达式。其中的括号是否是必需的? 你是否推荐在这个表达式中使用括号
(x and y and (not z)) or (( not y) and x)
解:
不是必需的,但推荐用括号,以增强可读性
练习1.8:请编写一个可以打印出脚本自身名称的程序(事先不知道脚本自身名字)
解:
解释器执行的脚本文件名存储在 arg[0] 中
if arg and arg[0] then print(arg[0]) end
文件名可能是一个绝对地址的形式,因此需要用string.find函数进行简单的模式匹配。
findfilename=string.find(arg[0],"[^\\/]-$") getfilename=string.sub(arg[0],findfilename) print(getfilename)
这篇关于阅读《Lua程序设计(第4版)》---1-1的文章就介绍到这儿,希望我们推荐的文章对大家有所帮助,也希望大家多多支持为之网!
- 2025-01-09必试!帮 J 人团队解决物流错发漏发的软件神器!
- 2025-01-09不容小觑!助力 J 人物流客服安抚情绪的软件!
- 2025-01-09为什么医疗团队协作离不开智能文档工具?
- 2025-01-09惊叹:J 人团队用啥软件让物流服务快又准?
- 2025-01-09如何利用数据分析工具优化项目资源分配?4种工具推荐
- 2025-01-09多学科协作难?这款文档工具可以帮你省心省力
- 2025-01-09团队中的技术项目经理TPM:工作内容与资源优化策略
- 2025-01-09JIT生产管理法:优化流程,提升竞争力的秘诀
- 2025-01-092024全球互联网流量分析报告
- 2025-01-09如何提升学校行政管理中的进度追踪效率?4个实用策略和3款工具推荐