📜  科特林 |适用于 Android 的语言,现在由 Google 官方提供

📅  最后修改于: 2021-10-19 07:59:44             🧑  作者: Mango

Kotlin 是 JetBrains 的一种新的开源编程语言。它于 2011 年首次出现,当时 JetBrains 公布了他们名为“Kotlin”的项目。基本上就像Java、C 和 C++——Kotlin 也是一种“静态类型编程语言”(在使用变量之前不需要定义变量的语言)。
静态类型并不意味着我们必须在使用它们之前先声明所有变量。当需要时,可以在程序中的任何地方初始化变量。
考虑下面的例子——

/* Java Code */
static int num1, num2; //explicit declaration
num1 = 20; //use the variables anywhere
num2 = 30;
/* Kotlin Code*/
val a: Int
val b: Int
a = 5
b = 10

Kotlin 支持是使用现代且强大的语言的机会,可以解决常见的头痛问题,例如运行时异常和源代码冗长。 Kotlin 易于上手,并且可以逐渐引入到现有项目中,这意味着您现有的技能和技术投资得以保留。

Kotlin 语言的特点:

  • Kotlin 避免了空指针异常,即,如果我们尝试分别为变量或函数分配或返回空值,则它不会编译。要编译它,我们必须添加“?”在变量类型之后。
    考虑下面的例子
    val name: String? = null     //assigned null and it will compile also.
          
    fun getName() : String? = null    //returned null and it     will compile too.
    /* won’t compile */    
      val name: String? = null
      val len = name.length    
      
    /* correct way */    
      val name: String? = null    
      val len = name?.length
    
  • 多才多艺的

与Java的比较

  • 空安全——正如已经提到的,Kotlin 避免空指针异常,即,只要发生空指针异常,它就会在编译时失败。
  • 数据类——在 Kotlin 中,有数据类可以自动生成样板,如 equals、hashCode、toString、getter/setter 等等。
    考虑下面的例子——
    /*     Java Code     */    
    class Book {
       private String title;
       private Author author;
       public String getTitle() {
           return title;
       }
       public void setTitle(String title) {
           this.title = title;
       }
       public Author getAuthor() {
           return author;
       }
       public void setAuthor(Author author) {
          this.author = author;
       }
    }
    

    但是在 Kotlin 中,上面的同一个类可以在一行中简洁地定义——

    /* Kotlin Code */
        data class Book(var title:String,var author:Author)
    
  • 类型推断——在 Kotlin 中,你不必显式指定每个变量的类型(以清晰和详细的方式),这是一件很棒的事情。但是如果你想显式定义一个数据类型,你也可以这样做。
    考虑下面的例子——
    /* not explicitly defined */    
    fun main(args: Array) {
       val text = 10
       println(text)
    }
        
    /* explicitly defined */    
    fun main(args: Array) {
       val text: Int = 10
       println(text)
    }
    
  • 函数式编程——Kotlin 包含许多有用的方法,包括高阶函数、lambda 表达式、运算符重载、惰性求值、运算符重载等等。
    函数式编程使 Kotlin 在集合方面更加方便——
    fun main(args: Array) {
    
       val numbers = arrayListOf(15, -5, 11, -39)
    
       val nonNegativeNumbers = numbers.filter { it >= 0 }
    
       println(nonNegativeNumbers)
    }

    输出:

    15,11
    
  • 智能转换– 谈到转换,Kotlin 编译器非常智能。在许多情况下,不需要使用显式转换运算符,但在 Kotlin 中,对不可变值进行“is-checks”并在需要时自动插入转换 –
    fun demo(x:Any){
    
           if(x is String){
    
           print(x.length)  // x is automatically cast to string
    
           }
       }
    

Kotlin 语言的好处:

  • Kotlin 编译为 JVM 字节码或 JavaScript-Like Java。字节码意味着一旦编译通过虚拟机而不是计算机处理器运行的编程代码。通过使用这种方法,源代码一旦被编译并通过虚拟机运行,就可以在任何平台上运行。一旦 kotlin 程序被转换为字节码,它就可以通过网络传输并由 JVM(Java虚拟机)执行。
  • Kotlin 程序可以使用所有现有的Java框架和库。
  • Kotlin 很容易学习,而且很容易上手。只需阅读语言参考即可轻松学习。语法干净,易于使用和理解。
  • Kotlin 是开源的,采用它不需要任何费用。
  • Kotlin 的 null-safety 很棒。这种类型的系统通过拒绝编译试图分配或返回 null 的代码来帮助我们避免空指针异常。
    val     name: String = null     // tries to assign null, won’t     compile.
        
    fun     getName() : String = null     // tries to return null, won’t     compile.
    
  • Kotlin 更侧重于可读的语法,因此代码审查不是问题。

关于 Kotlin 的一些事实:

  • 当前发布的版本是 2017 年 7 月 4 日发布的 1.1.3-2。
  • Kotlin 是免费的,一直是免费的,并将继续免费。它是在 Apache 2.0 许可下开发的,源代码可在 GitHub 上找到。
  • 与Java相比,Kotlin 更简洁,并且可以 100% 与Java互操作。
  • 尽管 Kotlin 可用于任何类型的开发,无论是服务器端还是客户端 Web,但它作为 Android 上的一流语言被支持。
  • Kotlin 得到所有主要Java IDE 的支持,包括 IntelliJ IDEA、Android Studio、Eclipse 和 NetBeans。

一些有用的链接:

  • 参考
  • 图书
  • 资源
  • 图片参考