0基础lua学习(二) 数据类型

举报
鱼酱 发表于 2022/01/06 23:44:50 2022/01/06
1.9k+ 0 0
【摘要】 1.  命名规范 a)    区分大小写 b)   不要使用关键字命名 c)     数字、字母、下划线、不要以数字开头,避免以下划线开头,或者后面是大写字母的命名 2.  类型与值 a)&nbsp...

1.  命名规范

a)    区分大小写

b)   不要使用关键字命名

c)     数字、字母、下划线、不要以数字开头,避免以下划线开头,或者后面是大写字母的命名

2.  类型与值

a)    nil – 空

b)   boolean – 布尔

c)     string – 字符串

d)   function – 函数

e)    table – 表

f)      userdata –自定义数据类型

g)    thread – 线程

函数print用来检测一个变量的类型



      print(type(var))
      var = 20
      print(type(var))
      var = "helloworld"
      print(type(var))
      var = print
      print(type(var))
      var(type(var))
      var ={}
      print(type(var))
  
 


1) nil

在Lua中nil表示的是一种类型,它只包含一个值nil。任何在未赋值之前都是nil.当一个全局变量赋值为nil,表示删除这个变量。

2)boolean

     有两个值 true,false。 nil也表示false,其它情况都为真。

0也是真。


                var= nil
           if var then
                print("true")
            else
                print("false")
            end
   
  


 var = nil    console:false

var = false  console:false

var =  0     console:true

var = “”    console:true

var = “helloworld”  console:true

只有为false 或者nil。等于0也是true

3)number

     表示实数,且只有这一种

 a = 10

 b= 50.2

 c=5e20

4)string

     表示一个字符序列,通常用单引号或者双引号

如果字符格式多,用下面这种


           long_str = [====[ i am am
            "long",
            long
             str]====]
            print(long_str)
   
  

 

连接字符串


      var ="hello".."hello"
      print(var)
  
 


获取字符串长度


      var ="hello".."hello"
      print(var)
      print(#var)
           long_str = [====[ i am am
           "long",
           long
            str]====]
           print(long_str)
               print(#long_str)
  
 


 

5)table 类似C++的map,比map繁琐

     ,table极大简化了使用过程

     如果C++声明

 Std::map<string,string> mvMap;

mvMap[“a”] = “test”

mvMap.insert(std::Map<std::string,std::string>::value_type(“b”,”test2”));

 map<int, string> mapStudent;

mapStudent.insert(pair<int,string>(1,"student_one"));

lua中这样声明

t = {a = “test1”,b = “test2”}
 


6.thread(线程)

在 Lua 里,最主要的线程是协同程序(coroutine)。它跟线程(thread)差不多,拥有自己独立的栈、局部变量和指令指针,可以跟其他协同程序共享全局变量和其他大部分东西。

线程跟协程的区别:线程可以同时多个运行,而协程任意时刻只能运行一个,并且处于运行状态的协程只有被挂起(suspend)时才会暂停。


7.userdata(自定义类型)

userdata 是一种用户自定义数据,用于表示一种由应用程序或 C/C++ 语言库所创建的类型,可以将任意 C/C++ 的任意数据类型的数据(通常是 struct 和 指针)存储到 Lua 变量中调用。

文章来源: yujiang.blog.csdn.net,作者:鱼酱2333,版权归原作者所有,如需转载,请联系作者。

原文链接:yujiang.blog.csdn.net/article/details/78280019

【版权声明】本文为华为云社区用户转载文章,如果您发现本社区中有涉嫌抄袭的内容,欢迎发送邮件进行举报,并提供相关证据,一经查实,本社区将立刻删除涉嫌侵权内容,举报邮箱: cloudbbs@huaweicloud.com
  • 点赞
  • 收藏
  • 关注作者

作者其他文章

评论(0

抱歉,系统识别当前为高风险访问,暂不支持该操作

    全部回复

    上滑加载中

    设置昵称

    在此一键设置昵称,即可参与社区互动!

    *长度不超过10个汉字或20个英文字符,设置后3个月内不可修改。

    *长度不超过10个汉字或20个英文字符,设置后3个月内不可修改。