脚本进阶教程 位置导航:首页 > 资料中心 > 脚本进阶教程
   脚本语法说明—类型与值

概述

UL是动态类型语言,变量不要类型定义。
Eg:
a = 10
a = "a string!!" 

UL中有6种基础类型:nil、boolean、number、string、function、table。

  nil :
  备注:Lua中特殊的类型,他只有一个值:nil;一个全局变量没有被赋值以前默认值为nil;给全局变量赋nil可以删除该变量。

  boolean :两个取值false和true。
  备注:UL中所有的值都可以作为条件。 在控制结构的条件中除了false和nil为假,其他值都为真。所以UL认为0和空串都是真。

  number
  备注:UL中没有整数,也就是说UL是不区分实数和整数的,认为所有的数都是实数,不需要特意的说明数字的类型。

  string
  备注:UL字符串中的字符可以具有任何数值编码,包括数值0,可以将任意二进制数据存储到一个字符串中。
  Eg:
  a = “a line”
  b = ‘another line’
  备注:UL中定义字符串不用考虑字符串的长度,需要注意的是UL中既可以用单引号表示字符串,又可以用双引号表示字符串。我们统一规定用半角的双引号,如果字符串本身带有双引号,必须使用全角的双引号,否则会出错。

  function
  备注:函数可以存储在变量中,可以作为函数的参数,也可以作为函数的返回值。详见“函数”章节。

  table
  备注:table是UL中唯一的数据结构。table类型实现了“关联数组”,不仅可以通过整数来索引它,还可以使用字符串或其他类型的值(除了nil)来索引它。table的创建是通过构造表达式完成的,最简单的构造表达式就是{}。
  Eg:
  对于a = {6}
  a.x = 10     --等同于a[“x” = 10]
  uPrintf = (a.x)   --等同于uPrintf(a[“x”])
  uPrintf(a.y)    --等同于uPrintf(a[“y”])
  uPrintf(a[1])    --结果为6
  UL对于诸如a[“name”]的写法提供了更简便的写法,可直接输入a.name。
  备注:要注意a.x和a[x]的区分。前者表示a[“x”],表示以字符串”x”来索引table;后者是以变量x的值来索引table。

●  转义符:
如果字符串本身包含引号,可以使用另一种引号来界定字面字符串,或使用反斜杠对引号进行转义。


UL字符串中的常用转义序列


string和number的转换:
  在UL中,string和number是可以自动转换的
  Eg1:
    uPrintf(“10” + 1)           --[[“10”+1系统判断应该进行number运算,自动把”10”转换为number,这样运算结果为11.--]]
  Eg2:
    uPrintf(10 .. 20)      --[[10..20系统判断应进行string运算,自动把10、20转换为string,这样运算的结果就是1020了--]]
  Eg3:
    10~= “10”         --[[当用于判断的时候,string和number不是自动转换的,因此数字10不等于字符串10]]

  此外还可进行强制转换:相关函数为uTonumber和uTostring。
  Eg1:
    a = “10”
    b = uTonumber (a)      --将字符串”10”转换为数字10
    uPrintf(utype(a))                -- > number
  Eg2:
    a = 10
    b = uTostring (a)        --将数字10转换为字符串”10”
    uPrintf(utype(b))                -- >string

.
公司介绍  |  由我博客  |  招聘信息  |  商务合作 |  媒体合作  |  联系我们  |  新浪微博  |  开心多尼
优万科技(北京)有限公司 版权所有 京ICP证08336号 ISBN 978-7-900648-32-7 《网络文化经营许可证》编号:文网文[2009]076号 新出网证(京)字099号
Copyright (C)2007-2010 UOneNet CO., LTD. All Rights Reserved.