kotlin 是一门面向对象的语言
没有基本类型 不像java一样integer 和int
kotlin的数值对象
类型 | 长度 |
Double | 64 |
Float | 32 |
Long | 64 |
Int | 32 |
Short | 16 |
Byte | 8 |
变量 声明 使用val /var关键字 var可变变量 val 不可变变量
语法格式: val 变量名:类型=值
/**
* @author xuanyouwu
* @email [email protected]
* @time 2016-03-23 17:06
*/
class Test {
var i:Int=7;
var d:Double=7.0;
var f:Float=7.0f;
var f2:Float=7.0F;
var l:Long=123;
var l2:Long=123L;
}
类型转换
变量的简化声明方式:不用指定类型 自动匹配
val na="my name is xuan";
不用指定类型 自动匹配
属性:
package com.xuan.kotlinapp
/**
* @author xuanyouwu
* *
* @email [email protected]
* *
* @time 2016-02-18 11:33
*/
class User {
var name:String="";
var age:Int=0;
}
创建User对象与赋值:
val user=User();
user.age=25;
user.name="xuan";
Kotlin 会默认创建set getter为变量 不可见 自动调用,我们也可以自定义get set:
kotlin 预留了一个在setter和getter中访问的变量 field关键字:
package com.xuan.kotlinapp
/**
* @author xuanyouwu
* *
* @email [email protected]
* *
* @time 2016-02-18 11:33
*/
class User {
var name: String = "";
get() = field;
set(value) {
field = "$value";
}
var age: Int = 0;
}
布尔类型:只有true false
var sex:Boolean=false;
var marry:Boolean=true;
数组:
var a=arrayOf(1,2,3);
字符和字符串:
var c: Char = 'l';
Log.d("-------->char:", "" + c);
var Str: String = "abcdefg";
for (c in Str) {
Log.d("----->c:", "" + c);
}
kotlin 模板
由$表示一个变量名 或者变量值
$varName 表示变量值
${varName.fun} 表示变量的方法返回值:
var name:String="xuan";
var introduce:String="my name is $name,and my name length is ${name.length}";
Log.d("------->我的介绍",introduce);
结果:
03-24 10:36:03.463 18770-18770/com.xuan.kotlinapp D/------->我的介绍: my name is xuan,and my name length is 4
kotlin确定一个函数参数是否不支持null?
格式 a:String? 添加一个问好
//? 代表支持为null
fun test4(name:String?):Unit{
println("my name is ${name}");
}
test4(null); 能正常运行
如果是:
//? 代表支持为null
fun test4(name:String):Unit{
println("my name is ${name}");
}
将会报错:
Error:(21, 11) Kotlin: Null can not be a value of a non-null type String