Kotlin是一门可以运行在Android、Java虚拟机、浏览器上的静态语言,他与Java100%兼容。2017年5月18日,Google官方已经将Kotlin指定为Android的一级开发语言。
第一个程序Hello World!:
package com.fuyunwang.kotlin
/**
* Created by BeautifulSoup on 2017/7/24.
*/
fun main(args: Array<String>) {
println("Hello World!")
}
Kotlin的数据类型
注意变量声明的格式 val 变量名:变量类型=变量值
Boolean类型:
//声明Boolean类型的变量
val bvalue : Boolean = true
Number类型
Number类型就是指数字类型,其中包括整型和浮点型。
浮点型包括单精度Float和双精度Double,这里和Java一致;
整型分为Short短整型、Int整型和Long长整型,这里和Java一致;
//这里仅仅举个例子
//输出Int类型的极值
val maxVal:Int= Int.MAX_VALUE;
val minVal:Int= Int.MIN_VALUE;
fun main(args: Array<String>) {
println("Int类型的最大值是:"+ maxVal)
println("Int类型的最小值是:"+ minVal)
}
Java中存在低精度向高精度的隐式类型转化,而在Kotlin中不能进行隐式类型转换:
val aInt:Int=5
val aLong:Long= aInt.toLong()
String类型:
string类型是指字符串类型,而且在kotlin中 ==比较字符串完全等价于Java中的equals
//声明一个字符串
val string:String="Hello World!"
//使用Kotlin的模板字符串
val arg1:Int=10
val arg2:Int=20
fun main(args: Array<String>) {
println("$arg1+$arg2=${arg1+ arg2}")
}
引用类型
class Book constructor(var name:String,var des:String,var price:Double){
init {
println("创建了一个Book对象,其中constructor在只有一个构造方法的时候可以省略;其name是:$name,描述是:$des,价格是:$price")
}
}
fun main(args: Array<String>) {
val book:Book=Book("Docker容器与容器云","本书简要介绍Docker的容器化技术",55.3)
}
空类型安全
在Kotlin中存在着空类型安全的机制,其中函数默认的返回值一般不为null,字符串在可以为空的情况下无法获取其长度:
//对于String类型返回值的函数,其返回值默认不能为null,如果确实返回null值,注意?
fun getDes():String?{
return null
}
//在函数调用的时候,如果函数值为null的情况下需要结束函数的执行操作:
val des:String= getDes() ?:return
println("描述是:$des")
val ss:String ?= "Hello World!" //此处说明ss是一个可以为NULL的字符串类型,所以在打印字符串长度的时候就应该特殊对待
println(ss!!.length)
区间
区间是数学上区间的概念,表示一个范围
区间的基类是CloseRange,其余的区间均继承于CloseRange,其中IntRange最为常用:
//全闭区间[0,1024]
val range:IntRange=0..1024
//半开半闭区间[0,1024)
val ras:IntRange=0 until 1024
//定义一个空区间并测试
val emptyRange=0..-1
fun main(args: Array<String>) {
println(emptyRange.isEmpty())
println(range.contains(1024))
println(ras.contains(1024))
//containers方法完全等价于in
println(1024 in range)
for (i in range){
println("$i,")
}
}
数组的基本使用
val intarray:IntArray= intArrayOf(11,1,3,98,-12,0)
val chararray:CharArray= charArrayOf('h','e','l','l','o')
//创建一个字符串数组
val stringarray:Array<String> = arrayOf("茗外清风移月影","壶边夜静听松声")
fun main(args: Array<String>) {
//查看数组中的元素
println(intarray.size)
//遍历数组中的元素
for (value in chararray){
print(value)
}
//将数组中的元素作为连接之后的字符串打印
println(chararray.joinToString("-"))
}