most from reference 类,对象,接口,构造函数,函数,属性及setters具有可见性修饰符(getter总是具有和属性一样的可见性).在kotlin中油4个可视化修饰符:private,protected,internal,public.如果没有显式修饰符,则使用默认可见性public. 包 函数,属性和类,对象和接口可以在顶级上声明,即直接在包中: // file name: example.kt package foo fun baz() {} class Bar {} 如…
most from reference Kotlin与C#和Gosu类似,提供了扩展一个新功能的类,而不必继承类或使用任何类型的设计模式,如Decorator(装饰者模式).这是通过称为扩展的特殊声明完成的.Kotlin支持扩展功能和扩展属性. 扩展功能 要声明一个扩展函数,我们需要一个接收器类型(即被扩展的类型)作为其名称的前缀.以下是为MutableList扩展的swap功能: fun MutableList<Int>.swap(index1: Int, index2: Int) { va…
most from reference 接口 Kotlin中的接口非常类似于Java8,它们可以包含抽象方法的声明以及方法实现.与抽象类不同的是接口不能存储状态.它们可以具有属性,但这些需要是抽象的或提供访问器. 使用interface关键字定义接口 interface MyInterface { fun bar() fun foo() { // optional body } } 实现接口 类或对象可以实现一个或多个接口 class Child : MyInterface { override…
most from reference 声明属性 Koltin的类都有属性,这些属性可以声明为可变的,使用var关键字或用val关键字生声明不可变属性. class Address { var name: String = ... var street: String = ... var city: String = ... var state: String? = ... var zip: String = ... } 要使用一个属性,我们简单地通过名称引用他,就好像Java中的一个字段: f…
most from reference 类 Kotlin的类的声明使用关键字class class Invoice { } 类声明由类名.类头(指定其类型参数,构造函数等)和类体组成,由大括号括起来.如果一个类没有方法体,可以省略花括号. class Empty 构造函数 Kotlin中类可以有一个主要的构造函数和一个或多个辅助构造函数.主构造函数是类头的一部分:它在类名后面(可选的类型参数) class Person constructor(firstName: String) { } 如果主…
most from reference kotlin有三个结构跳跃表达式 return 默认情况下,从最近的封闭函数或匿名函数返回. break 跳出整个循环 continue 跳出本次循环,进行下一次循环 所有这些表达式都可以用作更大表达式的一部分: val s = person.name ?: return 这些表达式的类型是Nothing类型 Break and Continue kotlin中的任何表达式都可以标记一个标签.标签是带有@标志的标识符,例如:abc@,fooBar@是有效的…
most from reference if表达式 在kotlin中,if是一个表达式,即它返回一个值.kotlin中没有Java中的三元运算符. // Traditional usage var max = a if (a < b) max = b // With else var max: Int if (a > b) { max = a } else { max = b } // As expression val max = if (a > b) a else b 如果分支是一个…
most from reference 包 源文件可以从包声明开始: package foo.bar fun baz() {} class Goo {} // ... 源文件的所有内容(如类和函数)都包含在声明的包中. 如果没有指定包,则这样的文件的内容属于没有名称的default包. 默认导入 默认情况下,将多个软件包导入到每个koitlin文件中: kotlin.* kotlin.annotation.* kotlin.collections.* kotlin.comparisons *(自…
most from reference 基本类型 在kotlin中,一切都是对象,我们可以在任何变量上调用成员函数和属性.一些类型可以具有特殊的内部表示:例如,数字.字符和布尔值都可以在运行时被表示为原始值,但是对于用户来说,它们看起来像普通类.在本节中,我们将描述kotlin中使用的基本类型:数字.字符.布尔值.数组和字符串. 数字 kotlin以接近Java的方式处理数字,但不完全相同.例如,数字没有隐含的扩展转换,在某些情况下,文字略有不同. kotlin提供以下代表数字的内置类型(这接近…
most from reference 命名规则 1.使用驼峰式命名规则,尽量避免在命名中使用下划线 2.类型以大写字母开头 3.方法和属性以小写字母开头 4.使用4个空格缩进 5.public的方法加上注释说明,以便他们能出现在Kotlin Doc中 冒号 分隔子类和父类的冒号前面应该加上一个空格,分隔对象实体和类的冒号前面没有空格 interface Foo<out T : Any> : Bar { fun foo(a: Int): T } Lambdas 在Lambda表达式中,空格用于…