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(
1
,
2
,
3
)
println("array:"+array.size)