Hello,Kotlin——新时代编程语言

Hello,Kotlin——新时代编程语言_第1张图片
图片.png

自从谷歌爸爸在2017I/O开发者大会上宣布了这个干儿子,kotlin就成了编程界的新进网红。相信大多数人和我一样在大会宣布之后才恍然大悟——原来还有这么个语言啊。这门语言问世了短短五、六年的时间,其面向JAVA的互操作性,安全性,简洁性等突出特点直接被谷歌爸爸看中。其实除了它的天赋以后,它的背景也是受人关注的。开发团队JetBrains本来就是最火的JAVA IDE——Intelli J的供应商,不管是Eclipse,还是Android Studio,都是基于Intelli J内核构建的IDE。亲孙子在此,当然要收了它了。目前用kotlin营运的项目也是不少的,比如Uber的内部工具,Coursera客户端,Evernote客户端,Gradle等,因为JAVA的互操作性,凡是能跑在JVM上的代码,kotlin看似都没有问题,其相对于JAVA笨重的属性,kotlin会不会完全取代JAVA呢,这一直是当今业界讨论的话题。

天下大势合久必分,分久必合。数风流人物,还看今朝。kotlin是英雄还是枭雄,现在就来会会它。

先来看看其基本类型和相关语法:

数字

有七种类型:
Double 64
Float 32
Long 64
Int 32
Short 16
Byte 8

表示方法:
Long 类型用大写 L 标记: 123L
十六进制: 0x0F
二进制: 0b00001011
十进制: 123

注意: 不支持八进制

kotlin有一个新的特性:数字字面值中可以添加下划线划分数字段
如下:

  val oneMillion = 1_000_000
  val creditCardNumber = 1234_5678_9012_3456L
  val socialSecurityNumber = 999_99_9999L
  val hexBytes = 0xFF_EC_DE_5E
  val bytes = 0b11010010_01101001_10010100_10010010

这样的好处就是,银行卡、电话号码、十六进制等特殊数字量能够明显的辨别。

值得注意的是,在kotlin中较小的类型不能隐式转换为较大的类型。 这意味着在不进行显式转换的情况下我们不能把 Byte 型值赋给一个 Int 变量。

Kotlin支持数字运算的标准集,运算被定义为相应的类成员(但编译器会将函数调用优化为相应的指令)。

字符

在 Kotlin 中字符不是数字,不能像C语言那样对其进行数字运算,转换后方可。

对于位运算,没有特殊字符来表示,而只可用中缀方式调用命名函数。也就是没有像JAVA左移<<这样的符号表达式了,去而代之的是字母表达式——

shl(bits) – 有符号左移 (Java 的 <<)

数组

关于数组,在 Kotlin 中使用 Array 类来表示,它定义了 get 和 set 函数(按照运算符重载约定这会转变为 [])和 size 属性,以及一些其他有用的成员函数。

注意: 与 Java 不同的是,Kotlin 中数组是不型变的(invariant)。这意味着 Kotlin 不让我们把Array赋值给Array,以防止可能的运行时失败(但是你可以使用Array)。

Kotlin 也有无装箱开销的专门的类来表示原生类型数组: ByteArray、 ShortArray、IntArray 等等。这些类和 Array 并没有继承关系,但是 它们有同样的方法属性集。

字符串

字符串用 String 类型表示。字符串是不可变的。 字符串的元素——字符可以使用索引运算符访问: s[i]。 可以用 for 循环迭代字符串。

Kotlin 有两种类型的字符串字面值: 转义字符串可以有转义字符,以及原生字符串可以包含换行和任意文本。转义字符串很像 Java 字符串。

字符串可以包含模板表达式 ,即一些小段代码,会求值并把结果合并到字符串中。 模板表达式以美元符($)开头,由一个简单的名字构成。

形如:

   val i = 10
   val s = "i = $i"//结果为“i = 10”

最后,附上程序员必学代码:

   package hello
   fun main(args : Array){
         println("Hello World!")
    }

在这里我只是摘出了需要注意的内容提供学习。
详细学习请转到kotlin中文官网。

你可能感兴趣的:(Hello,Kotlin——新时代编程语言)