这篇文章上次修改于 229 天前,可能其部分内容已经发生变化,如有疑问可询问作者。

Java和Lua的区别

转lua前必须要知道的是Java和lua的区别在哪里
区别如下:
1、java中有很多java才有的关键和类型,lua则只有lua自己的关键字。不过lua和java也有共同的关键字
2、java中声明数组和实例化对象需要new关键字进行,而lua没有new和不需要自己写类型
3、java函数体采用的或括号包起来而lua则是用end结束函数并不用花括号

Java和Lua中常用的关键字

Java:public,private,protected,final,static,default,void,synchronized,abstract,interface
Lua:local

Java常用的类型

int,float,double,long,short,char,boolean,byte,注意的是String实际上是一个对象并不是类型

变量转换

Java:public static int a = 0;
Lua:local a = 0 或 a = 0

Java:private static int a = 0;
Lua:local a = 0 或 a = 0

Java:protected final String a = 0;
Lua:local a = 0 或 a = 0

看起来很复杂这里有个记忆口诀
如:protected final String a = 0;
上面这个变量名为a
可以直接把变量名左边的全部去除就行了,只保留右边
a = 0

Java:final String asd = 0;
Lua:asd = 0

函数转换

Java中函数的声明结构是
修饰符 返回类型 方法名(参数类型 a ,xxx){
}

转lua也是非常简单的
比如下面这个
public final void a(A a){
}

转lua
function a()
end

再比如
public staitc String a(A a){
}

转lua
function a()
end

记忆口诀
1、把函数名前面的所有删除加上function
2、参数类型删除
3、花括号删除加上end

public staitc String a(A asd){
}
函数名是a删除前面的加上function就是
function a
括号中去除参数类型就是asd
去除花括号加end就是end
function a(a)
end

运算符的转换

Java Lua
算术运算符
a = a+1 a = a+1
a = a-1 a = a-1
a = a*1 a = a*1
a = a/1 a = a/1
a = a%1 a = a%1
a++ a = a+1
a = a-- a = a-1
关系运算符
== ==
!= ~=
> >
< <
>= >=
<= <=
位运算符
& &
| |
~ ~
<< <<
>> >>
逻辑运算符
&& and
|| or
! 这个比较特殊就是取反的意思,比如!a,Lua中a==false
赋值运算符
a=1 a=1
a+=2 a = a + 2
a-=2 a = a - 2
a*=2 a = a * 2
a/=2 a = a / 2
a%=2 a = a % 2
a<<=2 a = a << 2
a>>=2 a = a >> 2
a&=2 a = a & 2
a^=2 a = a ^ 2
a|=2 a = a | 2
a = b?1:2
            if b then 
                a = 1
            else
                a = 2
            end

if的转换

Java:
if(a==b || a==c){

}eles if(a != c && c == 3 ){

}else{

}

Lua:
if a==b or a~=c then

elseif a~=c and c==3 then

else

end

记忆口诀
1、 去除花括号
2、逻辑运算符按照上面表格更改
3、在条件后面加上then
4、最后加上end

for循环的转换

Java Lua

            for(int i=0;i<10;i++){
            }
        

            for i=0,10,1 do

            end
        

            int i = 0;
            for(;i<10;i++){
            }
        

            for i=0,9,1 do

            end
        

            int i = 10;
            for(;i>=10;i--){
            }
        

            for i=0,10,-1 do

            end
        

            int i = 0;
            for(;i>10;i=i-2){
            }
        

            for i=0,10,-2 do

            end
        

            int i = 0;
            for(;i>10;i=i+2){
            }
        

            for i=0,10,2 do

            end
        

            for(;;){
            }
        

            while true do 

            end
        

            int[] as = new int[]{1,2,3,4,5,6};
            for(int a : as){
            }
        

            as = {1,2,3,4,5,6};
            for i=1,#as-1 do
            end
        

while循环

while(ture){
}

转lua
while true do

end

while(a==0){

}

转lua
while a==0 do

end

记忆口诀
1、去除花括号
2、运算符对照上面表格修改
3、在条件后面加上then
4、末尾加上end

switch的转换

int a = 10
switch(a){

case 10:
   break; //可选
case 9:
   break; //可选
default : //可选

}

转成lua
a = 10
switch(a)
case 10

case 9

default

end

实例化对象

Java:
String a = new String("123");

Lua:
a = String("123")

数组的转换

Java:
int[] is = new int[]{1,2,3};

Lua:
is = int{1,2,3}


Java:
String[] is = new String[]{"1","2","3"};

Lua:
is = String{1,2,3}

接口的转换

Java:
Button btn = new Button(this);
btn.setOnclickListener(new View.OnClickListener(){
@overrid
protect void onclick(View v){

}
})

Lua:
btn = Button(this);
btn.setOnclickListener({
onclick=function(v){

}
})

若如上内容有任何的错误或者需要补充,请在下方评论区进行补充。我看到会第一时间更新到文章中。 谢谢您的合作!!!