包的定义与导入

包定义与导入与java相同。

package my.demo
import kotlin.text.*

程序入口点

程序入口点是main函数,但是没有静态的,考虑是否kotlin有静态函数。

fun main() {
    println("Hello world!")
}

因为主要是没有参数的,所以有无参数的。当然现在是有参数的。使用Array<String> 来替代。

fun main(args: Array<String>) {
    println("Hello World!")
}

I/O打印输出

标准输出

提供print和println两种打印输出。

println("Hello World!")
print("abc")
print("def")

标准输入

提供readln,readLine。其中若文件结束或遇到EOF则返回为null

val line:String = readln();
println(line)

readln和readLine的原函数如下。略有不同

public actual fun readln(): String = readlnOrNull() ?: throw ReadAfterEOFException("EOF has already been reached")
public fun readLine(): String? = LineReader.readLine(System.`in`, Charset.defaultCharset())

函数

kotlin的函数直接使用关键字声明即可,函数类似于TS。

fun sum(a:Int,b:Int): Int {
    return a+b;
}

kotlin函数对于简单的函数,它支持将函数直接定义。

fun sum(a:Int,b:Int)=a+b

返回无意义的函数

fun print():Unit {
    println("Hello World")
}

当然,也可以省略

fun print() {
    println("Hello World")
}
fun main(){
  println(print())  
}

变量

kotlin声明变量可以使用val或var,其类型会自动推断。其中val相当于java的const。

var a=2;
a=3;
val b=4
b=3;// 报错,不通过

类与实例

在此简单介绍类的基本语法,后期开专题专门介绍类

类的声明

使用class直接定义简单的类。

class A;

构造函数

kotlin的构造函数和js差不多,直接使用函数进行构造。kotlin构造时不使用new构造,直接当函数执行。

fun main(){
    var rectangle = Rectangle(5.0, 2.0)
    rectangle.perimeter.dec()
    rectangle.height
    rectangle.abc
}

class Rectangle(val height: Double, val length: Double) {
    val perimeter = (height + length) * 2
    var abc=3;
}

多构造函数

构造函数直接在类上面的函数叫主构造函数。当然,java中存在多个构造函数。

类的继承

kotlin默认类是无法继承的,需要使用open关键字声明其为可继承的类猜能被继承。

fun main(){
    var a=A();
    var b=B();
}

open class A;
class B:A();