// 关于kotlin函数定义 funsum(a: Int, b: Int){ // Int参数,返回值Int // return a + b; println(a+b); // 函数定义使用关键字fun,格式参数为参数:类型 // 表达式作为函数体,返回类型自动推断 // 例如:fun sum(a: Int, b: Int) = a + b; // public fun sum(a: Int, b: Int): Int = a + b; public方法则必须明确写出返回类型 }
funparseInt(str: String): Int?{ // 接受一个字符串,返回一个Int return str.toIntOrNull(); } funprintProduct(arg1: String, arg2: String){ val x = parseInt(arg1); val y = parseInt(arg2); // 直接使用‘x’*‘y’,会报错,因为它们可能为null if (x!= null && y!= null){ println(x * y); } else{ if (x!= null){ println("'$arg2' is not a number"); } if (y!= null){ println("'$arg1' is not a number") } println("'$arg1' or '$arg2' 有个不是数字") } }
funmain(args: Array<String>) { // 包级可见函数,接受一个字符串数组作为参数 println("Hello World!"); // 分号可以省略,正常我还是会加上分号 // 上面演示的是一个简单的Hello World输出 Hello("World").sayHello(); // 创建一个对象不用new关键字 /* * Kotlin基础语法 * kotlin文件以.kt结尾 * 包声明一般在开头 * 例如 * package com.example.demo * import java.util.* * fun test(){} * class test(){} */ sum(1,2); // 调用函数 // lambda(匿名函数) val sumLambda: (Int, Int) -> Int = {a, b -> a + b}; println(sumLambda(1,2)); // $ 表示一个变量名或者变量值 // $varName 表示变量值 // {varName.fun()} 表示变量方法的返回值 // 写一个例子 var a = 1; val s1 = "a is $a" println(s1); a = 2; val s2 = "${s1.replace("is", "was")},but now is $a" // a现在是2,不是1了。因为var是一个可变的变量,所以对a进行修改是可以的 println(s2); // //类型后面加?表示可为空 // var age: String? = "23" // //抛出空指针异常 // val ages = age!!.toInt() // //不做处理返回 null // val ages1 = age?.toInt() // //age为空返回-1 // val ages2 = age?.toInt() ?: -1 printProduct("3", "6"); printProduct("3", "b"); printProduct("a", "b"); printProduct("c", "6"); // 循环 for (i in1..10){ // 1..10 表示从1到10,包括1和10 println(i); } println("=====================") /* * for(i in 4..1) 什么都不输出,因为不存在4<x<1 * for(i in 1..4 step 2) 输出1 3,因为step是步长,默认是1*/ for (i in4 downTo 1 step 2){ println(i);// 输出4,2 } println("=====================") // 使用until函数排除结尾元素 for (i in1 until 10){ println(i); } // 实例演示 println("循环输出:"); for (i in1..4){ println(i); } println("\n=====================") println("设置步长:") for (i in1..10 step 2){ println(i); } }