Kotlin是一由JetBrains开发可用于现代多平台应用的静态编程语言。
Kotlin可以编译成Java字节码和JavaScript与Java代码相互运作,并可以重复使用如Java集合框架等的现有Java引用的函数。
Kotlin已正式成为Android官方支持开发语言。
年7月,JetBrains推出Kotlin项目,这是一个面向JVM的新语言,它已被开发一年之久。JetBrains负责人DmitryJemerov说,大多数语言没有他们正在寻找的特性,但是Scala除外。但是,他指出Scala的编译时间过慢这一明显缺陷。Kotlin的既定目标之一是像Java一样快速编译。年2月,JetBrains以Apache2许可证开源此项目。
超实用性的Python零基础入门到进阶视频源码淘宝¥2购买已下架Jetbrains希望这个新语言能够推动IntelliJIDEA的销售。
Kotlinv1.0于年2月15日发布。这被认为是第一个官方稳定版本,并且JetBrains已准备从该版本开始的长期向后兼容性。
在GoogleI/O中,Google宣布在Android上为Kotlin提供最佳支持。
Kotlin很明显受到Java、C#、JavaScript、Scala、Groovy等语言的影响。例如Kotlin可以直接通过
println(Hello,{name})
或
println(Hello,$name)
来使用字符串模板,和古老的shellscript类似。又如Kotlin中的分号是可选的,这类似JavaScript,而且Groovy、Scala也有同样的能力。Kotlin常量定义关键字是val(不同于变量定义关键字var),表示固定值,这功能来自Scala,Swift也有类似功能。
需要注意,Kotlin没有关键字new。
Kotlin与C#、JavaScript类似,能够扩展类别的新功能,而无需继承该类别,或使用像装饰器(decorator)这样的任何类型的设计模式(designpattern)。扩展函数可以称为Kotlin的核心,在标准库里到处充斥着扩展函数。
扩展函数是静态分发的,也就是说,它们不是以接收者类型为准的虚拟函数。这意味着调用的扩展函数是由函数调用所在的表达式的类型来决定的,而不是由表达式运行时求值结果决定的。
在下述例子中,String类别被扩展出一个成员lastChar。
packageMyStringExtensionsfunString.lastChar():Char=get(length-1)println(Kotlin.lastChar())
利用函数扩展,Kotlin也支持运算符重载:
//overloadingoperatorusinganextensionmethodoperatorfunPoint.plus(other:Point):Point{returnPoint(x+other.x,y+other.y)}valp1=Point(10,20)valp2=Point(30,40)println(p1+p2)Point(x=40,y=60)
Kotlin对可以为空(nullable)的变量和不可以为空(non-nullable)的变量做了区分。所有的可空对象(nullableobjects)必须在定义时加上?后置于类型之后。开发人员遇到nullableobjects时要先确认:null-check须被运行过,才能赋值。
可空性是Kotlin类型系统中帮助开发者避免以往Java的NullPointerException错误的特性。
在有关流行编程语言的调查中屡屡出现。由于它与Java无缝集成,因此它是Android应用程序开发的最佳选择。
对于那些对Android手机的应用程序开发感兴趣的人来说,这是一个不错的选择。Kotlin背后的团队旨在开发一种比Java更好的语言。
Kotlin可能没有赶超Java的流行,但是它可以解决Java中出现的一些问题。应用程序开发人员已使用Kotlin修复了某些应用程序的错误或重写Java代码。