当前位置: 首页 > news >正文

【Lua】题目小练6

题目一:基础类封装

要求:

请用 Lua 实现一个 Person 类,具备以下功能:

拥有属性:name 和 age

拥有方法:sayHello(),输出 "Hello, I am <name>, <age> years old."

使用 Person.new(name, age) 创建对象

local Person = {}
Person.__index = Personfunction Person:new()local tb = {name = "MyName",age = "MyAge"}setmetatable(tb, self)return tb
endfunction Person:sayHello()print("Hello, I am "..self.name..", "..self.age.." years old.")
endlocal t = Person:new()
t.name = "阿T"
t.age = 16
t:sayHello()

-- 题目二:封装一个类支持默认值和检查

请你写一个 Animal 类:

属性有:name, type, age(默认 0)

new(name, type, age) 构造方法

如果 age 小于 0,强制置为 0

方法:

describe():输出 "<name> is a <type>, <age> years old."

local Animal = {}
Animal.__index = Animalfunction Animal:new(name, type, age)local obj = {name = name,type = type,age = (age and age > 0) and age or 0}setmetatable(obj, Animal)return obj
endfunction Animal:describe()print(self.name.." is a "..self.type..", "..self.age.." years old.")
endlocal t = Animal:new("Hello","cat",-1)
t:describe()

----------逻辑运算符题目----------

-- a and b

-- a为true 返回b

-- a为false,返回a

-- a or b

-- --a为true,返回a

-- --a为false,返回b

print(false and "hello")       --> falseprint("hi" and "hello")        --> helloprint(nil or 123)              --> 123print(0 or "default")          --> 0print(false or nil)            --> nil
-- 如果 age >= 18 就返回 "adult",否则返回 "child"local age = 20local result = (age >= 18) and "adult" or "child"print(result)   --> adult-- 试试 age = 0 呢?age = 0result = (age >= 18) and "adult" or "child"print(result)   --> child
function check(val)return val and "OK" or "BAD"
endprint(check(true))     --> OKprint(check(false))    --> BADprint(check("yes"))    --> OKprint(check(nil))      --> BADprint(check(0))        --> OK

http://www.lryc.cn/news/606013.html

相关文章:

  • JavaScript函数性能优化秘籍:基于V8引擎优化
  • 【STM32】HAL库中的实现(二):串口(USART)/看门狗(IWDG/WWDG)/定时器(TIM)
  • JavaScript 框架语法特性对比-中文版
  • 39.MySQL索引
  • 用el-table实现的可编辑的动态表格组件
  • 树形DP-核心基础
  • DVD特工总部,DVD管理系统
  • 如何在 Ubuntu 24.04 或 22.04 LTS Linux 上安装 DaVinci Resolve
  • 【01】大恒相机SDK C++开发 —— 初始化相机,采集第一帧图像、回调采集、关闭相机
  • FastAPI的请求-响应周期为何需要后台任务分离?
  • Spire.XLS for .NET 中, 将 Excel 转换为 PDF 时, 如何设置纸张大小为A4纸,并将excel内容分页放置?
  • VBA代码解决方案第二十七讲:禁用EXCEL工作簿右上角的关闭按钮
  • 微信小程序性能优化与内存管理
  • 辐射源定位方法简述
  • 【25-cv-08807】David携Tyrone Acierto 雕塑版权发案
  • ros2--参数指令--rqt
  • sqli-labs:Less-16关卡详细解析
  • 揭秘动态测试:软件质量的实战防线
  • vue+elementui实现问卷调查配置可单选、多选、解答
  • 代码随想录day51图论2
  • Elasticsearch DSL 核心语法大全:match、bool、range、聚合查询实战解析
  • 软件项目中如何编写项目计划书?指南
  • SpringBoot3.x入门到精通系列:1.1 简介与新特性
  • 代码随想录刷题Day21
  • SELinux 核心概念与访问控制机制解析
  • 数据库学习------数据库事务的特性
  • 【计算机组成原理】第二章:数据的表示和运算(上)
  • Python爬虫06_Requests政府采购严重违法失信行为信息记录爬取
  • Android U 软件fota版本后APN更新逻辑
  • CSS入门指南:从选择器到样式布局