Kotlin 基本语法

来源:互联网 发布:电子相册制作软件推荐 编辑:程序博客网 时间:2024/06/17 04:21

概述

本文对这几天学习Kotlin作一个简单总结,大概包括Kotlin的基本数据类型,集合类型,控制流,基本语法,类与对象。

Kotlin是 JetBrains 开发的基于JVM的一门新语言,它是一门全栈语言,用于开发服务端,Android,JavaScript。今年Google将Kotlin选作Android的官方开发语言,作为一个Android应用开发者很有必要学习一下这门官方语言。简单学习了几天后对它的感受:
1. 语法简洁(听说可以少30%的代码)
2. 空指针安全,提供了多种操作符(?.:,?:,!!),再也不用担心因为找不到对象而程序奔溃了
3. Lambda 表达式支持(很酷是吧,不算了解,但是写的代码很酷,尽管经常看不懂)
4. 扩展函数
5. 与Java几乎可以算是无缝链接(别问差在哪里不行,记得文档上面是这么说的)

基本类型

基本类型和Java没有太大差别,注意下Array的用法即可
1. 数值类型:Double、Float、Long、Int、Short、Byte
2. 字符类型:Char、String
3. 布尔类型:Boolean
4. 数组类型:Array

集合类型

区分可变集合和不可变集合,还是经典的三大类型,列表,Set,字典Map,注意区分理解什么事可变和不可变
1. List MutableList;
2. Set MutableSet
3. Map

控制流

控制流和Java基本一样,除了when代替switch,其它基本没有变化,包括break,continue,return
1. if else
2. when
3. for
4. while/do while

基本语法

代码的命名风格参考Java的编码规范即可,驼峰命名法,类名,大写,方法和属性小写开头,使用4个空格缩进,公有函数写文档等。

1. 包

包的声明和导入,与Java没有什么区别,与Java不同的是目录与包的结构无需匹配,源代码可以在文件系统的任意位置

2. 变量

val a: Int = 0 // 定义一个不可变的变量
var a: Int? = 0 // 定义一个可变的变量

3. 方法

声明方法需要关键字:fun,举个栗子:
fun draw(text: String): Boolean{
}

4. 可⻅性修饰符

有4个关键字:private 、 protected 、 internal 和 public,默认可见性为public,因为目录和
private:文件内可见(包级声明),类内部成员可见(类和接口)
protected:适用于类,类和子类可见
internal:模块内可见
public:随处可见

类和对象

声明类的关键字还是class,抽象类需要abstract修饰,有点不一样的是类默认是Java中的final的,如果类允许基础,需要用open修饰。构造函数有主次之分,且主构造函数不能包括任何代码,初始化代码可以放到init初始化块中。继承父类需要用主构造函数的参数初始化父类的的主构造函数,接口实现直接在”:”之后声明要实现的接口:

class Customer(name: String): ClassA(params),InterfaceA,InterfaceB {    init {        logger.info("Customer initialized with value ${name}")    }}

定义属性

属性的完整定义如下,如果不定义set和get,直接通过属性名可以访问(默认是有setter和getter)

var stringRepresentation: String    get() = this.toString()    set(value) {        setDataFromString(value) // 解析字符串并赋值给其他属性    }

set和get可以用可⻅性修饰符修饰,如,一个属性不允许外部赋值,那么可以将set定义为private

方法

方法声明除了使用关键字fun之外,没有什么特别,如果允许重写,需要加open修饰。

高级

Java转Kotlin入门到此结束,并没有发现对比于Java的优势,只是语法简单了一点而已。真正要用好Kotlin,估计要深入学习后面的这些板块:

  1. 对象声明与伴生对象、数据类
  2. 扩展
  3. 空安全与异常
  4. 注解和反射
  5. 委托,lambda表达式,高阶函数
  6. Java互操作