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

django做网站怎样国家工商登记网

django做网站怎样,国家工商登记网,酒店找人做网站,以前做视频的网站吗目录 变量篇 算数运算符 条件分支语句与循环语句 函数 表 Table 全局变量与本地变量 协程 元表 面向对象#xff08;封装#xff0c;继承#xff0c;多态#xff09; 常用自带库 垃圾回收 变量篇 print(hello) print(lua) --注释 --[[…目录 变量篇 算数运算符 条件分支语句与循环语句 函数 表 Table 全局变量与本地变量 协程 元表 面向对象封装继承多态 常用自带库 垃圾回收 变量篇 print(hello) print(lua) --注释 --[[多行注释1 ]]--[[多行注释2 ]]----[[多行注释3 --]]--变量 a5 bnil print(a)--多重赋值 aa,bb1,2 aaa,bbb,c1,2 print(aaa,bbb,c)--多变量赋值 a,b,c 1,2 print(c)--不够会自动为空多了会省略 --数值型 q0x11 print(q) print(type(q))--string xajn8uah yjkHJUb90 xxjbs\nhk print(x,y,xx) yyx..y--拼接 print(yy) print(string.format(我今年%d岁,10))print(\n) tonumtonumber(10) tostrtostring(10) print(string.upper(y)) print(string.lower(yy)) print(string.reverse(xx)) print(string.find(yy,HJ)) print(string.sub(yy,5,9)) print(string.rep(y,4)) print(string.gsub(yy,j,xxx))print(\n) sstring.char(0x45) s1string.byte(y,2) print(#x) print(tonum,tostr,s,s1)ss[[w ky duohang shuchu ]] print(ss) 算数运算符 --算数运算符 -- 有-*/% --没有自增自减 -- --没有复合运算符 print (12) a3 b4 print(a*b,a/b) print(154.24) print(25.2*5) print(45%7) print(幂运算..2^5)--条件运算符 -- ~ print(31) print(28) print(2~7) print(77) print(\n)--逻辑运算符,满足短路第一个是假的则就是假 -- || -- and or print(true or false) print(true and false) print(false and print(555)) print(not true) --LUA不支持位运算符不支持三目运算符--and or --逻辑与逻辑或 --不仅可以连接bool类型任何类型都可以连接 --在lua中只有nil与false为假 print(1 and 2) print(false and 2)print(false or 3) print(4 or 77) print(nil or false)x5 y1 local res(xy)and x or y print(res) 条件分支语句与循环语句 --条件分支语句if 110 thenprint(110) elseprint(no) endif 810 thenprint(810) elseif 810 thenprint(810) end--循环语句 --for --11111 for i10,15 doprint(i) end--22222 for i1,10,2 doprint(i) end--while local n10 while n1 donn-1print(n) end--do while num0 repeatprint(num)numnum1 until num5 --结束条件 函数 --functionfunction function_name( ... )-- body endafunction() end--无参数无返回 function F1()print(F1) end F1()F2function ( )-- bodyprint(F2) end F2()--有参数无返回 function F3(a)print(a) end F3(1)--可以穿任意参数 F3(1,8,5)--不会报错自动丢弃--有返回 function F4(a)return a,444,false end tempF4(4587) print(temp) --多返回值时前面申明多个变量来接取 t1,t2,t3F4(9) print(t1,t2,t3)--函数的类型 print(type(F4))--函数的重载 --LUA中不支持函数重载,默认调用最后一个申明的函数--变长参数 function F7( ... )--变长参数使用 用一个表存起来 再用arg{...}for i1,#arg doprint(arg[i])end endF7(1,5,444,8,7,true)--函数的嵌套 function F8( ... )F9function ()print(nyx)endreturn F9 endttF8() F9()--LUA中闭包考点 function FF( x )--改变了传入参数的生命周期return function ( y )return xyend endF10FF(10) print(F10(5))--函数多返回值 function test( )-- bodyreturn 11,34,25,3 enda,b,ctest() print(a) print(b) print(c)表 Table --表table所有复杂类型都是表--数组 a{1,5,222,nujs,true,8787,nil} --索引从1开始 print(a[5]) --#是通用的获取长度的关键字 print(#a) b{45,sjb,nil,4} print(#b) --高版本中不会因为中间存在nil而是表的长度被截断--二维数组 aa{{5,7,55},{5,775,1}} print(aa[1][3])--数组的遍历 --一维 for i1,#a doprint(a[i]) endfor i1,#b doprint(b[i]) end --二维 for i1,#aa dobaa[i]for j1,#b doprint(b[j])end end--自定义索引 bb{[0]n,2,3,[-1]4,5} print(bb[0]) print(#bb)--为2 3 5 print(bb[-1])c{[1]1,[2]2,[6]7,[11]9}--比较特别的注意 print(#c)--字典 --字典的申明 a{[name]nyx,[age]18,[1]5} print(a[name]) print(a[age]) print(a[1]) --可以用类似.成员变量的形式得到值 print(a.name) --但是数字不可以. --print(a.1) --修改 a[name]wwww print(a.name) --新增 a[sex]female print(a.sex) --删除 a[sex]nil print(a.sex) print(遍历)--模拟字典遍历只能用pairs for i,k in pairs(a) doprint(i.._..k) end --类和结构体 --lua中默认没有面向对象需要自己实现 --封装 成员变量成员函数。。。。。。 Student{age11,sextrue,set4,Upfunction (age)--这个age与上面的不是同一个是一个全局变量除非写Student.ageprint(age.age)print(vgjvv)end,Learnfunction ()-- bodyprint(哈哈哈哈)end } --申明表过后在表外去申明表有的变量和方法 Student.nametls Student.Speakfunction ()print(speak) endprint(Student.set) Student.Up(Student) Student.Learn()--lua中.与:的区别 Student.Speak() --:时会默认把第一个参数传入方法中 Student:Up()--函数的第三种声明方式 function Student:Speak2()--lua中 有一个关键字 self 表示默认传入的第一个参数print(self.name..11shuohua) endStudent:Speak2()--表的公共操作 t1{{age1,namennn},{age77,namewww}} t2{namethd,sextrue}--插入 print(#t1) table.insert(t1,t2); print(#t1) print(t1[1]) print(t1[2]) print(t1[3]) print(t1[1].name)--删除 --remove 传表会移除最后一个内容 table.remove(t1) print(#t1) print(t1[1].name) --remove 传两个参数第一个是表第二个是索引 table.remove(t1,2) print(#t1)t2{5,8,nil,22,bbb,4} print(#t2..--t2)--排序 t3{5,8,42,22,1,4} table.sort(t3) for i,v in pairs(t3) doprint(v) end --逆序 table.sort( t3, function(a,b)if ab thenreturn trueend end) for _,v in pairs(t3) doprint(v) end--拼接 tb{155,87,h,888745,5544} strtable.concat(tb,。)--返回的是字符串对表中元素有要求 print(str) --迭代器 --主要是用来遍历表的 a{[0]1,2,[-1]5,nil,444,8}--ipairs,从1开始遍历 for i,k in ipairs(a) doprint(键值对..i.._..k) endprint(\n) --pairs遍历,可以找到所有的键的值 for i,v in pairs(a) doprint(键值对..i.._..v) end 全局变量与本地变量 --全局变量与本地变量 --全局变量 a1 b124--局部变量 for i1,2 dolocal cxx end print(c) --多脚本执行 --关键字 require(脚本名)或者单引号‘’ require(test) print(testa) print(aa)--脚本卸载 require(test)--加载一次后不会再执行 --package.loaded[脚本名],为true说明已经被执行过 print(package.loaded[test]) --卸载已经执行过的脚本 package.loaded[test]nil print(package.loaded[test]) local rarequire(test)--可以接收return出去的本地变量 print(ra)--大G表 --_G(是一个特殊的table,保存所有的全局变量) for k,v in pairs(_G) do--print(k,v) end 协程 -----------------------------协程协同程序--------------------------- ----------------------创建(create创建与function函数创建)-------------------- --coroutine.create() funfunction ( )-- bodyprint(13) end cocoroutine.create(fun) --协程的本质是一个线程对象 print(co) print(type(co))--函数创建返回为函数 co2coroutine.wrap(fun) print(co2) print(type(co2))----------------------------------运行-------------------------- --create创建方式的运行 coroutine.resume(co)--函数创建方式运行 co2()----------------------------------------挂起-------------------------fun2function()local i1while true doprint(i)ii1print(coroutine.status(co3))--协程挂起函数coroutine.yield()--其中可以带返回值coroutine.yield(i)协程的第一个返回值是返回有没有执行成功--coroutine.yield(i)end endco3coroutine.create(fun2) isT,tempicoroutine.resume(co3) print(isT,tempi) coroutine.resume(co3)--在lua中因为程序是从上到下执行一次 所有只有重启一次他才会继续执行 coroutine.resume(co3) coroutine.resume(co3)co4coroutine.wrap(fun2) --此方式的协程调用也可以有返回值但是没用默认的第一个返回值 co4() co4() co4() co4()--与上面相同执行一次-----------------------------------状态------------------------------------------ --coroutine.statusd(协程对象) --dead 结束 --suspended 暂停 --running 进行中 print(coroutine.status(co3)) print(coroutine.status(co)) --得到现在正在运行的协程编号(线程号) print(coroutine.running()) 元表 --------------------元表--------------------- --------------------元表的概念--------------------- --任何表变量都可以作为另一个表变量的元表 --任何变量都可以有自己的元表 --当对有元表的表执行操作时会执行元表中的内容 --------------------设置元表--------------------- t1{} myt{} --设置元表函数 setmetatable(myt,t1)--将第一个参数设置成第二个元表--------------------元表的操作--------------------- -----------------—__tostring t2{__tostringfunction(i)return i.nameend } myt1{namenyx }setmetatable(myt1,t2)--将第一个参数设置成第二个元表 print(myt1)--------------------------__call当第一个参数被当作一个函数来使用时会默认调用__call中的内容 --当希望穿参数时一定要默认第一个参数是调用者自己 t3{__tostringfunction(i)return i.nameend,__callfunction(a,b)print(a)print(b)print(love)end } myt2{namenyx }setmetatable(myt2,t3)--将第一个参数设置成第二个元表 print(myt2) --把子表当作函数使用就会调用元表的__call方法 myt2(5)-------------------------------------运算符重载 meta{--相当于运算符重载当子表使用运算符时会调用方法__addfunction(t1,t2)return tt.agett1.ageend,__subfunction(t1,t2)return tt.age-tt1.ageend,__mulfunction(t1,t2)return tt.age*tt1.ageend,__divfunction(t1,t2)return tt.age/tt1.ageend,__modfunction(t1,t2)return tt.age%tt1.ageend,__powfunction(t1,t2)return tt.age^tt1.ageend,__eqfunction(t1,t2)return tt.agett1.ageend,__ltfunction(t1,t2)return tt.agett1.ageend,__lefunction(t1,t2)return tt.agett1.ageend, --lua中没有不等于与大于大于等于__concatfunction(t1,t2)return t1..t2end} tt{age1} setmetatable(tt,meta) tt1{age2}print(tt..tt1)----------------------__index与__newindex-------------------------mm{age2 } --将__index的赋值写在表外进行初始化 mm.__indexmm ty{} setmetatable(ty,mm)print(getmetatable(ty))--得到元表的方法 --__index当子表中ty找不到某个属性时会到元表中__index指定的表去找索引 print(ty.age)--————index查找可以层层向上 mmFa{sx5 } mmFa.__indexmmFa setmetatable(mm,mmFa) print(mm.sx)--__newIndex 当赋值时如果赋值一个不存在的索引那么会把这个值附到newIndex所指的表中不会修改自己 ma{} ma.__newIndex{} mt{} setmetatable(mt,ma) mt.grade99 print(mt.grade) print(ma.__newIndex.grade) 面向对象封装继承多态 -----------------------------面向对象-------------------------- -----------------------------封装-------------------- --面向对象类其实都是基于table来实现Object{} Object.id1 function Object:Test()print(self.id)end--冒号 会将自动调用这个函数的对象作为第一个参数传入的写法 function Object:new( )-- self代表我们默认传入的第一个参数--对象就是变量返回一个新的变量返回出去的内容本质上就是表对象local obj{}--元表知识__index 当找自己的变量找不到时就会去找元表当中__index指向的内容self.__indexselfsetmetatable(obj,self)return obj end local myObjObject:new() print(myObj) print(myObj.id) myObj:Test() --想当于对空表中申明一个新的属性叫id myObj.id2 print(Object.id) myObj:Test()------------------------------------继承--------------------- --写一个用于继承的方法 function Object:subClass(classname)--_G知识点是总表所有声明的全局变量都以键值对的形式存在其中_G[classname]{}--写相关继承规则local obj_G[classname]self.__indexself--子类 定义一个base属性 base属性代表父类obj.baseselfsetmetatable(obj,self) end print(_G) _G[a]1 print(a)Object:subClass(Person) local p1Person:new()print(p1.id)------------------------------------多态------------------------- print(------------------------------------------) --相同行为不同表现 --相同方法不同执行逻辑就是多态 Object:subClass(GameObject) GameObject.posX0 GameObject.posY0 function GameObject:Move()self.posXself.posX1self.posYself.posY1print(self.posX)print(self.posY) endGameObject:subClass(Player) function Player:Move()-- base.Move构建一个base保留父类的方法--这里的base指的是Gameobject类此方式调用相当于将基类表作为第一个参数传入方法--避免将基类表传入到方法中这样相当于公用一张表的属性--我们如果要执行父类逻辑我们不要直接冒号调用--要通过.调用然后传入第一个参数self.base.Move(self) end local P1Player:new() P1:Move() --目前这种写法不同对象使用的成员变量居然是相同的 local P2Player:new() P2:Move() 常用自带库 -------------------lua的自带库----------------------------------------时间--------------------- --系统时间 print(os.time()) --自己传入参数得到时间 print(os.time({year2024,month12,day29}))--利用os.date(*t) local nowtime os.date(*t) print(nowtime) for i,v in pairs(nowtime) doprint(i,v) end print(nowtime.hour) -------------------数学运算--------------------- --math --绝对值 print(math.abs(-23)) --弧度转角度 print(math.deg(math.pi)) --三角函数,传弧度 print(math.cos(math.pi)) --向下向上取整 print(math.floor(2.6)) print(math.ceil(5.2))--最大值与最小值 print(math.max(1,4)) print(math.min(4,1))--小数分为整数与小数俩部分 print(math.modf(2.4))--幂运算 print(math.pow(2,5))--随机数,先设置随机数种子 math.randomseed(os.time()) print(math.random(100)) print(math.random(100))--开方 print(math.sqrt(9))-------------------路径--------------------- --lua脚本加载路径 print(package.path) 垃圾回收 ------------------------垃圾回收-------------------- --关键字 collectgarbage --获取当前lua占用内存数 K字节用返回值*1024得到具体内存占用字节数 collectgarbage(count)test{id1,name222222} print(collectgarbage(count))--lua中的机制与C#中的机制很类似解除羁绊则变为垃圾 testnil--进行垃圾回收看类似于GC collectgarbage(collect) print(collectgarbage(count)) --lua中其实有自动定时垃圾回收 --但是在Unity热更新开发中尽量不要用自动垃圾回收
http://www.w-s-a.com/news/252639/

相关文章:

  • 上海城乡住房建设厅网站西安网站推广慧创科技
  • 做策划网站推广怎么写简历互联网公司手机网站
  • 怎么做宣传网站网站建设采购项目合同书
  • 网站的空间和域名备案做网站要会写什么
  • wap 网站源码企业网站被转做非法用途
  • 下载网站模板怎么使用做物流网站的公司
  • 网站 商城 app 建设建设银行江苏省行网站
  • 广州网站开发建设西安广告公司联系方式
  • 怎么用腾讯云服务器做网站个人网站开发视频
  • 网站建设技术代码坦洲网站建设公司哪家好
  • 阿里云对象存储做静态网站怎样做网站性能优化
  • 怎样做理财投资网站装修平面图用什么软件简单
  • 建手机wap网站大概多少钱苏州网站设计公司有哪些
  • 网站建设需求文件学校网站建设方案及报价
  • 网站开发一般多少钱wordpress打赏赞插件
  • 做中国o2o网站领导唐山网站制作软件
  • 门户网站简介做网站一天能接多少单
  • 论坛类网站建设遵义网站制作外包
  • vps服务器购买网站小视频做网站怎么赚钱
  • 网站用图片wordpress同步发布
  • 织梦图片自适应网站源码网页美工的设计要点
  • 渝快办官方网站wordpress产品图片怎么改
  • 高端网站特色深圳建网站哪
  • 宝塔搭建网站软文小故事200字
  • 公司网站设计免费虚拟主机网站源码
  • 怎样做好网站用户体验申请网站空间
  • 网站建设优化公司招聘福州网站建设思企
  • 设计网站会员wordpress rss聚合
  • 网站建设过程中的收获html5官方网站开发流程
  • 网站建设-信科网络h5美食制作网站模板下载