介绍了基本的一些语法,现在用最真实的Demo,来进行深入学习KotLin!
参考链接是:https://try.kotl.in
在Intellij IDEA 开发环境里,新建一个kt文件,
即可进行kt文件的开发编辑!
任何语言最经典的Demo——hello world:
/** * We declare a package-level function main which returns Unit and takes * an Array of strings as a parameter. Note that semicolons are optional. */
fun main(args: Array<String>) {
println("Hello, world!")
}
分析:上面的代码没有什么可以分析的,就写了一个主函数,并且打印“hello ,world!”, 唯一的可以参考的是参数,写法是先写变量名,跟着一个”:“后面是变量的类型。同时和Java的一个区别是每一条语句之后,不需要加”;“ 同时该函数是没有返回值的,所以省略了Unit关键字
/** * Line 13 demonstrates string templates and array access. * See this pages for details: * http://kotlinlang.org/docs/reference/basic-types.html#strings * http://kotlinlang.org/docs/reference/basic-types.html#arrays */
fun main(args: Array<String>) {
if (args.size() == 0) {
println("Please provide a name as a command-line argument")
return
}
println("Hello, ${args[0]}!")
}
分析:字符串动态拼接使用 ${ }
来进行字符串的动态拼接!
/** * Line 2 demonstrates the for-loop, that would have been called "enhanced" * if there were any other for-loop in Kotlin. * See http://kotlinlang.org/docs/reference/basic-syntax.html#using-a-for-loop */
fun main(args: Array<String>) {
for (name in args)
println("Hello, $name!")
}
分析:使用的是增强for循环来进行集合遍历,循环写的语法是:
for(变量名 in 变量集合)
扩展:把示例二和实例三进行比较,可以发现字符串替换的方式不一样,在此写个Demo看一下运行的结果,发现其实没有什么区别(如果您知道,希望可以告诉我一下哈):
fun main(args: Array<String>) {
println(myName("张三"))
println(myNameB("李四"))
}
fun myName( name : String) : String{
return "Hello, ${name}!"
}
fun myNameB( name : String) : String{
return "Hello, $name!"
}
运行结果:
Hello, 张三!
Hello, 李四!
/** * In this example, `val` denotes a declaration of a read-only local variable, * that is assigned an pattern matching expression. * See http://kotlinlang.org/docs/reference/control-flow.html#when-expression */
fun main(args: Array<String>) {
val language = if (args.size() == 0) "EN" else args[0]
println(when (language) {
"EN" -> "Hello!"
"FR" -> "Salut!"
"IT" -> "Ciao!"
else -> "Sorry, I can't greet you in $language yet"
})
}
分析:上面的示例使用val
关键字进行变量的声明,通过一个表达式来确定变量的值,使用if -else进行选择;另外使用了一个when()
,when-else 必须配合使用;符合某一条件可以使用 ->
或者使用{}
进行包裹!
println()方法是在哪呢?Java可以导包,但是Kotlin没有发现导包的痕迹?经过查找,println()方法在包kitlon.io 包下,具体API地址:
http://www.kotlinlang.org/api/latest/jvm/stdlib/kotlin.io/index.html
/** * Here we have a class with a primary constructor and a member function. * Note that there's no `new` keyword used to create an object. * See http://kotlinlang.org/docs/reference/classes.html#classes */
class Greeter(val name: String) {
fun greet() {
println("Hello, ${name}");
}
}
fun main(args: Array<String>) {
Greeter(args[0]).greet()
}
分析:以上代码创建了一个含有一个参数的构造函数类,并且该类有一个成员方法。调用类的方法并没有像Java一样需要new一下,而是直接调用构造函数,就像上面的Demo,
Greeter(args[0]).greet()
以上就是一些简单的Demo学习!不足之处或理解有错误的地方请不吝指正,在此提前感谢!