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){

1
2
3
4
5
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){

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