Lua初学习 9-12 基础

1:string 转 number :tonumber(string)

2: number 转 string :tostring(number)

3:string API:

       Lua中的字符串是不可变值,a = "cocotang"  string.gsub(a,"c","z")  print(a) ----> cocotang

        1获得字符串长度:string.len(string)  或者 #string

        2拼接2个字符串: string..string     &&    如果是2个number number .. number(空格不然误认为小数点)

        3截取字符串,组成新的字符串:string.gsub(a,"cc","zz",index) a字符串中的 cc 由 zz 代替 直到index位置

        4查找字符串中的某字符串位置:string.find(a,"coco") 返回2个值 c 的index 与 o的index

4:io.read() 获取控制台输入

5: Table创建一个List(数组)

           a={}

           1:当key 赋值1-10时,len = 10

           2:当key 赋值0-10时,len = 10 (同上)

          Lua中通常用 1 来做 Index的初始值  (table.maxn(a))--->返回最大正索引 Index

6:取精度 

     x = 3.123456 print(x-x%0.001)   ---->3.123

     x%1 结果是 x的小数部分 0.123456

     x-x%1 结果是 x的整数部分 3   

     x-x%0.001 结果是 x取小数点后三位

7:运算符

     > < == >= <= 同于C#

      ~= 不等于(C# !=)

      Lua中取反 not(空格)   (C# !)

8:运算优先级

      基本同于C#,直接用括号显示的表现优先级 容易理解

      -x^2  -------> -(x^2)

      x^y^z --------->x^(y^z)

9:Table构造式

     a = {x = 10 , y = 20} 等价于a ={["x"]=10 ,["y" =20]}  等价于 a = {} a["x"] =10 a["y"] =20  等价于 a = {} a.x= 10 a.y = 20

10:Table里面删除一个变量

      a = {} a.x= 10  a.x= nil

11:交换变量(Lua里面有点特别) (多重赋值 调函数时传入的实参多余或者少于形参时,与多重赋值非常相似)

     C#中:int a=1;int b=2; 交换: int c = a; a =b; b=c;

     Lua中:a = 1 b = 2  交换:a,b = b,a

     a,b = 1,2,3 ---->舍弃3

     a,b,c = 1,2  ----->c=nil

12:流程控制

     1由于Lua不支持Switch语句,所以一连串的if elseif 是很常见的

     2循环中用break可以跳出循环

13:Lua中没有 ++ --,并且 +=  -=也没有    如果递增1 a=a+1

14:Lua中的Foreach( Generic for)

      1遍历所有k: a = {x=1,y=2,z=3;"one","two","three"}

        for k in pairs(a) do

        print(k)  ------>  1 2 3 y x z

        end

       2遍历所有v:

         for i , v in pairs(a) do

         print(v)  -------> one two three 2 1 3

         end

        2-2 遍历所有的v         

        for k in pairs(a) do

        print(a[k])  ------>  1 2 3 y x z

        end

        3遍历数组a的所有值

        for i , v in ipairs(a) do

        print(v)  ---------> one two three

        end

    值得注意的是:遍历数组a中的值,ipairs(a) 输出的并不是所有的value,以后慢慢了解

15:逆向Table(反转key value)

       a = {x=1, y =2, z =3}

       b = {}

       for k,v in pairs(a) do

       b[v] = k

       end

16:break与return

       break跳出循环,return跳出方法

       注意:但是如果return在if前面  报错

17:方法的调用

       a = {}

       function a:Test() print("orz") end

       第一种调:a:Test()    第二种调:a.Test() 注意第二种隐式的传入了a  --->a.Test(a)

       假如 function有一个参数,用第二种调 a.Test(n) 报错,应该---> a.Test(a,n)

18:方法的返回值

     function foo1() end 无返回值

     function foo2() return 1 end 返回一个值

     function foo3() return 1,2 end 返回两个值

     x,y = foo3() ----> x =1, y = 2

     x = foo3()  ------> x =1 ,  2被丢弃

     x,y,z = foo3() ----->x=1,y=2,z=nil

     x,y = foo3(),99  ----->x = 1,y = 99

     x,y = foo1(),20,30 ---->x = nil , y =20    30被丢弃

     注意:Table 可以接受 函数返回的所有值,前提是函数作为table构造式中最后一个参数,如果不是最后一个参数,那么只会取第一个返回值,无返回值则为nil

     如果强行让函数返回第一个值,可以用一对小括号 括起来函数 ---> (foo()) 不管foo有几个返回值,都只返回第一个,没有返回nil

      特殊内置函数 unpack:它接受一个数组作为参数,并从下标1开始返回该数组的所有元素

       例如:print(unpack({1,2,3,4,5,66}))   ----> 1,2,3,4,5,66

19: 算术类元方法

__add()   + 运算对应的元方法
__sub()   
__mul
__div
__mod
__pow
__unm     相反数
__concat  .. 运算对应的元方法

 

      

          

         

转载于:https://www.cnblogs.com/cocotang/p/5864861.html

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.mzph.cn/news/395094.shtml

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

iview下拉选

问题描述&#xff1a;创建场景&#xff0c;连续创建场景时&#xff0c;第一个场景创建成功后&#xff0c;第二次进入创建窗口&#xff0c;点击测试任务下拉编辑只有上次创建成功的那一个任务候选&#xff0c;选中该任务中&#xff0c;关联脚本也只有上次成功创建的唯一个候选下…

JAVA实现在面板中添加图表_Java 创建PowerPoint图表并为其添加趋势线

图表&#xff0c;是指将既得数据用图形的方式表示出来。在前文中我们介绍过如何使用Java程序来为Excel文档创建图表的方法。本文将通过使用Java程序来演示如何创建PowerPoint图表及为图表添加趋势线。趋势线的运用能够显示数据的变化趋势&#xff0c;同时能够帮助预测数据的未来…

code warri_我参加了有史以来的第一届Warri Tech宣传活动。 这是我学到的。

code warriIn the city of Warri, Delta state of Nigeria, there is a saying that goes “Warri nor dey carry last, if e hard well well na draw”. This translates to “Warri is never behind in the scheme of things (events)”.在尼日利亚三角洲州的沃里市&#xff…

Socket编程小结

目录&#xff1a; 什么是 socket&#xff1f;... 1 Internet 套接字的两种类型... 1 网络理论... 2 结构体... 2 本机转换... 3 IP 地址和如何处理它们... 4 socket()函数... 4 bind()函数... 4 connect()程序... 5 listen()函数... 6 accept()函数... 6 send() and recv() 7 …

idea设置中文界面_《英雄联盟手游》设置界面中文翻译图分享 外服汉化界面一览...

导读 英雄联盟手游目前以及正式上线了&#xff0c;不过现在的话是没有中文版的&#xff0c;只有外服&#xff0c;所有很多地方是看不懂的&#xff0c;也不明白的&#xff0c;这样的话就需要翻译了&#xff0c;具体要怎么设置会比较&#xff0c;相关的步骤是什么呢&#xff1f;下…

windows 2008 r2 系统默认80端口被系统占用的处理

--windows 2008 r2 系统默认80端口被系统占用的处理 --使用netstat 命令查看指定端口netstat -ano | findstr :80----如下所示&#xff1a;本地的80端口被进程为4的占用 TCP 0.0.0.0:80 0.0.0.0:0 LISTENING 4 TCP 192.168.1.207:60652 …

java实现封装的三部_Java 封装

Java 封装在面向对象程式设计方法中&#xff0c;封装(英语&#xff1a;Encapsulation)是指&#xff0c;一种将抽象性函式接口的实作细节部份包装、隐藏起来的方法。封装可以被认为是一个保护屏障&#xff0c;防止该类的代码和数据被外部类定义的代码随机访问。要访问该类的代码…

小猪短租超棒新房_freeCodeCamp讲座简介:您可以免费观看的超棒技术讲座

小猪短租超棒新房by Quincy Larson昆西拉尔森(Quincy Larson) freeCodeCamp讲座简介&#xff1a;您可以免费观看的超棒技术讲座 (Introducing freeCodeCamp Talks: awesome tech talks you can watch for free) Developers give thousands of tech talks every year at confer…

安卓10不支持qmc解码_官宣:安卓10已发布!21款手机已适配,小米华为率先支持...

随着今天凌晨谷歌 I/O 大会的召开&#xff0c;Android Q 也就是安卓10正式官宣&#xff0c;新版的安卓10加入了诸多新手势&#xff0c;从 Home 键设计上看&#xff0c;安卓10 的新版手势很大程度上有疑似借鉴 iOS 的手势&#xff0c;底部一个长条&#xff0c;作为 Home 用来返回…

linux系统编程之进程(七):system()函数使用【转】

本文转载自&#xff1a;http://www.cnblogs.com/mickole/p/3187974.html 一&#xff0c;system()理解 功能&#xff1a;system()函数调用“/bin/sh -c command”执行特定的命令&#xff0c;阻塞当前进程直到command命令执行完毕 原型&#xff1a; int system(const char *comma…

安装了最新版本的java 用友nc打不开_NC无法安装客户端插件,不能进入用友NC系统登陆界面...

NC无法安装客户端插件&#xff0c;不能进入用友NC系统登陆界面问题现象现象1&#xff1a;可以打开web界面&#xff0c;但无法进入登陆界面&#xff0c;一直停留在右图所示界面。现象2&#xff1a;系统提示安全警告问题原因在使用IE首次登录NC系统时&#xff0c;系统会自动下载N…

汉王云名片识别(SM)组件开发详解

大家好&#xff0c;最近在DeviceOne平台上做了一个汉王云名片识别的功能组件。下面把我开发过程给大家做一个分享&#xff0c;希望可以帮助到大家。 下面我把我的思路给大家讲解一下。1.找到我要集成的sdk&#xff0c;也就是汉王云名片的sdk下载&#xff08;android和ios&#…

[App Store Connect帮助]八、维护您的 App(4.2)查看评分与评论

您可以查看 App 的总评分或单个顾客评论。如有必要&#xff0c;您可以针对某条评论报告问题。 【注】顾客可以为您的 iOS 和 macOS App 评分并撰写评论&#xff0c;但只能为 Apple TVOS App 评分。 必要职能&#xff1a;“帐户持有人”职能、“管理”职能、“App 管理”职能、“…

visio studio json工具_《产品经理入门指南》彩蛋2:别技淫原型图!你的Visio和Balsamiq Mockup入门了吗?...

温馨提示&#xff1a;如果你有关于产品经理方面的任何问题&#xff0c;欢迎关注我的微信公众号与我互动。最新的免费系统的产品经理课程《老司机带你做产品》已经推出&#xff0c;请关注微信公众号&#xff1a;iamliuwenzhi很多产品新人刚开始工作时&#xff0c;喜欢一拿到需求…

渐进式web应用程序_通过渐进式Web应用程序吸引用户并增强他们的体验

渐进式web应用程序by Dave Gray戴夫格雷(Dave Gray) 通过渐进式Web应用程序吸引用户并增强他们的体验 (Engage your users and enhance their experience with Progressive Web Apps) 什么是渐进式Web应用程序&#xff1f; (What is a Progressive Web App?) A Progressive W…

mysql牵引例子_MySQL学习06(事务和索引)

事务概述什么是事务事务就是将一组SQL语句放在同一批次内去执行如果一个SQL语句出错,则该批次内的所有SQL都将被取消执行MySQL事务处理只支持InnoDB和BDB数据表类型事务的ACID原则原子性(Atomic)整个事务中的所有操作&#xff0c;要么全部完成&#xff0c;要么全部不完成&#…

android操作系统 真的吗_旋挖机培训学校真的能学会吗,旋挖钻机到底有哪些操作系统...

旋挖机培训学校真的能学会吗添加微&#xff1a;yywyyc 旋挖钻机到底有哪些操作系统【前言】很多使用旋挖钻机或者想要了解旋挖钻机的工程公司可能不是特别了解旋挖钻机本身的系统以及部件&#xff0c;本篇文章针对旋挖钻机的操作系统来给大家介绍一下&#xff0c;让大家了…

WebAPI 2参数绑定方法

简单类型参数 Example 1: Sending a simple parameter in the Url [RoutePrefix("api/values")] public class ValuesController : ApiController {// http://localhost:49407/api/values/example1?id2[Route("example1")][HttpGet]public string Get(int…

推荐几个自己经常去的一些博客和网站

唐巧的技术博客objc中国Ray WenderlichCocoaDocs.orgNSHipsterLukes HomepageCocoabit | 做自己喜欢的事情转载于:https://www.cnblogs.com/faceup/p/10423259.html

创建hugo博客_Hugo + Firebase:如何在几分钟内免费创建自己的静态网站

创建hugo博客by Aravind Putrevu通过Aravind Putrevu Hugo Firebase&#xff1a;如何在几分钟内免费创建自己的静态网站 (Hugo Firebase: How to create your own static website for free in minutes) Ever thought of having your own website for putting up your projec…