Lua基础:Lua基础

使用工具:SciTE

Lua的特点:

① 可扩展性。Lua 的扩展性非常卓越,以至于很多人把 Lua 用作搭建领域语言的工具(注:比如游戏脚本)。Lua 被设计为易于扩展的,可以通过 Lua 代码或者 C代码扩展,Lua 的很多功能都是通过外部库来扩展的。Lua 很容易与 C/C++、java、fortran、Smalltalk、Ada,以及其他语言接口。
② 简单。Lua 本身简单,小巧;内容少但功能强大,这使得 Lua 易于学习,很容易实现一些小的应用。他的完全发布版(代码、手册以及某些平台的二进制文件)仅用一张软盘就可以装得下。
③ 高效率。Lua 有很高的执行效率,统计表明 Lua 是目前平均效率最高的脚本语言。
④ 与平台无关。Lua 几乎可以运行在所有我们听说过的系统上,如 NextStep、OS/2、PlayStation II (Sony)、Mac OS-9、OS X、BeOS、MS-DOS、IBM mainframes、EPOC、PalmOS、MCF5206eLITE Evaluation Board、RISC OS,及所有的 Windows 和 Unix。Lua 不是通过使用条件编译实现平台无关,而是完全使用 ANSI (ISO) C,这意味着只要你有 ANSI C 编译器你就可以编译并使用 Lua。

单行注释    --

多行注释    --[[        --]]

示例代码:

  1. print("hello World")    --打印hello world
  2. ---------------------------------------------------------------------------------------
  3. function fact(n)              --函数 fact()  打印n的阶乘
  4.     if n==0 then              -- if  else 语句
  5.         return 1
  6.     else
  7.         return n*fact(n-1)
  8.     end
  9. end
  10. print("enter a number:")
  11. a=io.read("*number")   --读取一个number
  12. print(fact(a))                   --打印结果

Lua中的转义字符:

  1. \a         bell 
  2. \b         back space         -- 后退
  3. \f          form feed              -- 换页
  4. \n         newline                -- 换行
  5. \r         carriage return     -- 回车
  6. \t         horizontal tab       -- 制表水平
  7. \v         vertical tab          --制表垂直
  8. \\         backslash            -- "\" 
  9. \"        double quote       -- 双引号
  10. \'         single quote        --单引号
  11. \[         left square bracket        -- 左中括号
  12. \]         right square bracket      -- 右中括号
  13. -------------------------------------------------------------------------------------
  14. print("one line\nnext line\n\"in quotes\", 'in quotes'")

Lua是动态类型语言,变量不要类型定义,Lua中的8个基本类型:

nil,boolean,number,string,userdata,function,thread,table

  1. print(type("hello World"))          --string类型
  2. print(type(10.3*3))                    --number类型
  3. print(type(print))                        --function函数类型
  4. print(type(type))                        --function
  5. print(type(true))                        --boolean
  6. print(type(nil))                          --nil空类型
  7. print(type(type(x)))                  --string类型  
  8. -------------------------------------------------------------------------------------
  9. print("10" + 1)             --> 11string和number之间自动转换类型
  10. line = io.read()            -- 读取一行 
  11. n = tonumber(line)      -- string转换成number
  12. print(tostring(10) == "10")       --> number转换成string

连接运算符:..

  1. print(10 .. 20)                            --> 1020    ..   字符串连接符

Lua算术运算符:二元运算符:+ - * / ^ (加减乘除幂) 

                              一元运算符:- (负值) 
                              这些运算符的操作数都是实数。

  1. function norm(x,y)
  2.     local n2=x^2+y^2       --x的平方+y的平方
  3.     return math.sqrt(n2)   
  4. end
  5. function twice(x)
  6.     return 2*x
  7. end

Lua关系运算符:<  >  <=  >=  true 或者 false  ==  ~= 比较两个值

  1. a={};a.x=1;a.y=0;  --{}构造函数  创建空表
  2. b={};b.x=1;b.y=0;
  3. c=a;
  4. print(c==a)
  5. print(a==c)
  6. print(a~=b)
  7. a==c but a~=b
  8. print("0"==0)
  9. print(2<15)
  10. print("2"<"15")

Lua逻辑运算符:and     or     not 

a and b    --如果a为false,返回a,否则返回b   and优先级比or高

a or b      --如果a为true,返回a,否则返回b

a?b:c(C语言) 等价于 (a and b)or c(Lua语言)

  1. print(4 and 5)                      --> 5      
  2. print(nil and 13)                  --> nil 
  3. print(false and 13)             --> false 
  4. print(4 or 5)                        --> 4 
  5. print(false or 5)                  --> 5 
  6. print(not false)                    --> true 

Lua表: {}是构造函数,创建一个空表,可以直接初始化一个表days,在lua中下标索引从1开始

  1. days={"Sunday","Monday","Tuesday","Wednesday","Thursday","Friday","Saturday"}
  2. print(days[3])
  3. table={sin(1),sin(2),sin(3),sin(4),sin(5),sin(6),sin(7),sin(8)}
  4. a={x=0,y=0}  等价于a={}; a.x=0; a.y=0;

 

你可能感兴趣的:(Lua,菜鸟学习编程之路)