数据类型
数据类型,学习文档中并未有篇章进行介绍,不过观察发现其实和Java 很类似,基本
上是通用的,不过值得注意的是 java 的 int 在 kotlin 中是 Int ,如果写的不对是会报错的,
会报错的,会报错的!;在kotlin中是没有意义的字符了,可以在句末添加,但不会作用,
并且不是通用的。建议舍弃
语法结构
语法上面,较java不同的是kotlin的方法前需要添加 fun 标识,而java这是private 、
public 等修饰符话不多说,给出两个方法比较着看
kotlin 语法
//两个int 类型的数求和
fun sum(a: Int,b:Int) :Int{
return a+b;
}
java 语法
//连个整数求和
private int sum(int a, int b) {
return a+b;
}
可以看出来 变化还是很明显的,1、方法的修饰符变了 private-->fun,2、返回值类
型位置变动java 返回值类型是在方法前的,kotlin则在方法之后 3、java是int,kotlin是
Int 4、最重要也是你将来要习惯的一种写法 a:Int ,一种在java中三元运算或者foreach常
用的一种字符,以后这里要经常使用了。关于这个字符,我个人觉得就行我们小学读课
文 ,某人说:“”一样,这里其实道理是一样的。这里表示的是一种从属关系,a 属于Int
类型 ,name: String --> name属于String 类型 。其实就是讲定义变量的方式改变了,jav
a 是 String name ; kotlin 是 name:String .包括之后类之间的继承关系也是用这种方式定
义的。
这里我感觉有必要介绍一个关键字(姑且参照java的叫法) Unit 这个关键字相当于
java的void 空类型,kotlin 的Unit代表一个没有意义的值,但是如果你的方法返回的是
一个没有意义的值得时候,Unit是可以省略的。下面给上代码,大家自行比较
kotlin 代码
//返回一个没有意义的值
fun printSum(a:Int ,b:Int):Unit{
println("sum of $a and $b is ${a + b}")
}
//返回一个没有意义的值省略写法
fun printSum2(a:Int, b:Int){
println("sum of $a and $b is ${ a+b }");
}
java 代码
//打印连个整数的和
private void printSum(int a,int b){
System.out.println(a+b);
}
是不是发现又有不一样的地方了?java中""中的代表字符串,并且是整串输出,kotlin不
同,$有点引用的味道,而{}中你可以进行一些相关的运算操作。打印的相关操作也更简洁
了,println(),有没有想起大学那会敲C++代码的酸爽感?
定义局部变量
局部变量有常量和变量,下面看看kotlin如何定义这两种变量
定义常量:
fun initConstants(){
val a :Int = 1//立即初始化
val b = 2 //推导出Int型
val c:Int //当没有初始化值时必须声明类型
c = 3 // 赋值
println(" a = $a ,b = $b ,c = $c ")//a = 1 ,b = 2 ,c = 3
}
定义变量
fun initVariables(){
var n = 5//推导出Int类型
n += 1
println("n = $n")//n = 6
var x = "name"//推导出String
var y:String//未初始化必须声明类型
y = x + " is Amor"
println("x = $x ,y = $y")//x = name ,y = name is Amor
}
在 Kotlin 中类可以有属性,我们可以使用 var 关键字声明可变属性,或者用 val 关键字
声明只读属性。
注释
kotlin支持单行注释和块注释
// 单行注释
/* 哈哈哈哈这是块注释 */
条件表达式
if 语句与java用法相同 fun maxOf(a:Int ,b:Int):Int{ if(a){ retrun a }else{ return b }}
当然 这样写 也是可以的 fun maxOf(a: Int, b: Int) = if (a > b) a else b