Kotlin与Java语法的比较

Java的知识就不想多讲了,这里只比较与Kotlin语法不同的地方,方便快速上手,适合给有经验的安卓开发看。

1.关于基础变量

Kotlin 的基本数值类型包括 Byte、Short、Int、Long、Float、Double 等,都是大写的开头,java的写法是byte、short、int、long、float、double,实际上就是直接帮你封装成一个对象了。

例如:

JAVA :

int a = 3; 

Kotlin :前面的var意思是声明一个变量,a还是变量名,冒号后面跟变量类型,主要是大写开头的Int,并且代码行尾不需要加分号了

var a:Int = 3

由于kotlin加了智能转换,所以上面代码可以直接改,但前提是得直接赋值,如果不赋值他不能智能推断出你就是Int:

var a = 3


扩展(可以不看):

1)使用下划线使数字常量更易读,就是真正输出的时候实际上并不会读取下横线。注意!!!必须是数值,如果是字符串,那肯定还是会输出下横线的。

例如 :

  var number = 1_000_000;

  println("number:"+number)

-> number:1000000

2.变量与常量

前面提到了var,这是声明普通变量,如果是常量,就是val,这与java的final一样,反正声明之后一旦赋值就不能改变


3.数组的使用

Java:

int[] array = new int[] {1,2,3};

Kotlin: 跟声明变量类似,一来就var ,然后数组名,冒号后面跟哪种类型的数组(像IntArray是kotlin特有的类型声明),右边就通过intArrayOf 声明数组空间,只是kotlin语法不需要写new了,注意值是放在()里面而不是{ }

 var array:IntArray = intArrayOf(1, 2, 3)

当然还有其他的类型声明:

var long_array:LongArray = longArrayOf( 1 2 3 )
var float_array:FloatArray = floatArrayOf( 1 .0f,  2 .0f,  3 .0f)
var double_array:DoubleArray = doubleArrayOf( 1.0 2.0 3.0 )
var boolean_array:BooleanArray = booleanArrayOf( true false true )
var char_array:CharArray = charArrayOf( 'a' 'b' 'c' )
注意:

数组类型不包括字符串数组,而Java是允许使用字符串数组的,代码示例如下:

1
String[] string_array =  new  String[] { "One" "Two" "Three" };

取而代之的写法:

var string_array:Array<String> = arrayOf("One""Two""Three")

其实字符串数组有这种写法,其他的也有,所以推荐这种写法,就可以只记一种了

var int_array:Array<Int> = arrayOf( 1 2 3 )
var long_array:Array<Long> = arrayOf( 1 2 3 )
var float_array:Array<Float> = arrayOf( 1 .0f,  2 .0f,  3 .0f)
var double_array:Array<Double> = arrayOf( 1.0 2.0 3.0 )
var boolean_array:Array<Boolean> = arrayOf( true false true )
var char_array:Array<Char> = arrayOf( 'a' 'b' 'c' )

声明数组和对数组赋值都有了,获取数组下标的方式是一样的,就不说了,接下看看如何取数组的大小

JAVA表示数组的长度用.length,而Kotlin使用.size

例如:

JAVA:

      int[] array = new int[] {1,2,3};
      System.out.println("array:"+array.length);

Kotlin:

    var array :Array<Int> = arrayOf(123)

    println("array:"+array.size)





猜你喜欢

转载自blog.csdn.net/u014369799/article/details/80267860