Kotlin是一门由JetBrains开源的编程语言。
我从2017年开始局部使用,现在安利给没接触过的同学们。
为什么选择Kotlin?
1、基于JVM,静态语言,性能有保障;
2、完全兼容Java,可以混编;
3、语法简单,提供了非常多语法糖;
4、语法安全,在编译期间处理各种为null问题,不需要像Java那样各种非空判断就可以避免绝大部分的NullPointException;
5、IDE支持较好,和大名鼎鼎的IntelliJ IDEA同根生;
6、Google官方推荐Android开发首选语言;
本文不介绍使用Kotlin开发Android,介绍使用Kotlin开发服务端(SpringBoot+Kotlin)。
一、语法介绍
定义包
package my.demo
import java.util.*
定义函数,返回Int
fun sum(a: Int, b: Int): Int {
return a + b
}
// OR
fun sum(a: Int, b: Int) = a + b
无返回值函数(Unit修饰)
fun printSum(a: Int, b: Int): Unit {
println("sum of $a and $b is ${a + b}")
}
// OR
fun printSum(a: Int, b: Int) {
println("sum of $a and $b is ${a + b}")
}
定义变量
可以通过val、var定义变量,和Java11类似
val:只能赋值一次
var:可以重新赋值
val a: Int = 1 // 立即赋值
val b = 2 // 自动推断出 `Int` 类型
val c: Int // 如果没有初始值类型不能省略
c = 3 // 明确赋值
var x = 5 // 自动推断出 `Int` 类型
x += 1
null安全判断和返回null,类型后面跟"?"
fun test(str : String?) : String?{
if(str?.length == 0) return null else return str
}
for循环
val items = listOf("a", "b", "c")
for (item in items) {
println(item)
}
while循环
val items = listOf("a", "b", "c")
var index = 0
while (index < items.size) {
println("item at $index is ${items[index]}")
index++
}
基础语法就介绍这些,下面介绍下使用Kotlin + Springboot搭建第一个Web项目
二、搭建Web程序
步骤和创建Java + Springboot应用一致,注意第二个页面,选择语言
搭建完毕,项目结构如下(多余的目录,删掉即可):
Kotlin20190513Application 改为open修饰
创建IndexController
注意选择Kotlin File/Class
类型选择Class
类上注解@RestController
@RestController
class IndexController {
编写第一个接口(一个name参数,加一个计数功能)
val count = AtomicLong()
@GetMapping("")
fun index(@RequestParam name : String) = "Hello $name,第${count.incrementAndGet()} 次访问"
在Kotlin20190513Application.kt文件上,右键运行,启动项目(和Java + SpringBoot项目一致)
浏览器访问接口,加参数名name
默认是8080端口,我这配置了8081
第一个接口已经简单完成,只需一行代码。
开始开发第二个接口
需求:一个可为空的参数,接口内部循环0-5,根据参数是否为空,返回对应JSON结果
@GetMapping("test")
fun test(@RequestParam(required = false) content : Any?) : Map{
println(content.toString())
for (i in 0..5){
println("当前循环值:$i")
}
if(content == null) return mapOf(Pair("success","T"))
return mapOf(Pair("success","F"))
}
浏览器访问http://localhost:8080/test
控制台打印结果:
浏览器响应结果:
第二个接口也实现完毕。
不知道同学们有没有注意,Kotlin有个小小的优点,不需要在结尾写“;”....
Kotlin是一门语言,也可以看作Java的一个超级类库。
本文就安利到这里。
更多精彩内容,请关注公众号。
博客文章每周从公众号同步一次。