--[[
print("Hello World");
print('Hello world');
--Lua是弱类型语言
--C#是强类型语言---int x = 10;
--全局变量
x = 10;--number
x = "hxsd";--字符串
print(x);
--局部变量
local y = 10.123;
print(type(y))
y = "CSDN";
print(type(y))
print(y);
local z;
print(z)
local t = {};
print(t);
local str = "12345";
print(#str)
local str1 = "123";
local str2 = "456";
print (str1 + str2)
print(str1..str2)
--print(_G["x"])
--双目运算符 : + * / && & || |
--单目运算符: ! ++ -- a ++ b -- !true
--三目运算符: 1 ? 2 : 3
--true & false
--Lua中没有++ -- += *=
local x = 1;
x = x + 1;
print(x)
local y = 3;
print( y ~= x or x == 0);
local x = -3;
if x > 0 then
print("x 是正值");
elseif x == 0 then
print("x等于0");
else
print("x 是负数");
end
local x = 10
while x > 0 do
print(x);
x = x - 1;
end
local y = 10;
repeat
print(y);
y = y - 1;
until y == 0
for i=1,10 do
print(i)
end
--table
--表相当于C#中的什么功能:数组、列表、字典、类、结构体
local ta = {"12345",123,[-3] = 100,["blue"] = "蓝色",[3] = "three",["tata"] = {["123"]= 123,["456"] = 456}}
print(#ta)
print(ta[1])
print(ta[2])--通过下标号取值
print(ta["blue"])--通过Key取值
ta["Test"] = "Test"--类似字典的用法
print(ta.Test)--类似对象的访问
print(ta.tata["123"])
--遍历表
for k,v in pairs(ta) do
print(k,v)
end
function fun1( )
print("hello")
end
fun1()
local fun2 = function ( )
print("fun2")
end
fun2()
local fun3 = function ( a, b )
print(a,b)
end
fun3(3,4,5)
local fun4 = function ( a )
print("fun4:"..a)
return a + 3
end
print(fun4(3))
--可以有两个返回值
local fun5 = function ( )
return 1,2
end
local x = fun5()
print(x)
local fun6 = function ( ... )
local t = {...}
local sum = 0
for k,v in pairs(t) do
sum = sum + v
end
print(sum)
end
fun6(1,2,3,4,5,6)
class Person{
public string name;
public int age;
public void Show(){
cw("name:{0},age:{1},name,age);
}
}
Person zhangsan = new Person();
zhangsan.Show();
local t = {["name"]="zhangsan",["age"] = 18}
--将一个方法作为表的一个元素
t.func1 = function ( )
print("表的方法func1")
end
t.func1()
t.func2 = function ( ta )
print("name:"..ta["name"])
end
t.func2(t)
function t : func3()
print("name:"..self.name)
end
t:func3()
]]
--模拟面向对象
--[[
local t1 = {["name"] = "zhangsan"}
local t2 = {["age"] = 18}
--相当于t2作为t1的一个扩展
setmetatable(t1,t2)
t2.__index = t2
print(t1.age)
]]
local Person = {name,age}
function Person : New(name,age)
local t = {}
setmetatable(t , self)
self.__index = self
self.name = name
self.age = age
return t
end
function Person : Show()
print(self.name,self.age)
end
local zhangsan = Person:New("张三", 18)
print(zhangsan.age)
zhangsan:Show()
local lisi = Person: New("李四",20)
lisi:Show()
---模拟继承
local Student = Person:New()
function Student : New( name,age,major )
local t = Person:New(name,age)
setmetatable(t,self)
self.__index = self;
self.major = major
return t
end
function Person : Show( )
print(self.name,self.age,self.major)
end
local wangwu = Student : New("王五",18,"Unity")
print(wangwu.major)
Lua基础与模拟面向对象
最新推荐文章于 2025-01-15 09:27:55 发布
本文深入讲解Lua语言的基础语法,包括变量定义、数据类型、流程控制、表操作、函数定义及调用,同时介绍了Lua的面向对象编程模拟实现,是初学者入门Lua的理想资料。
717

被折叠的 条评论
为什么被折叠?



