美文网首页Android开发Android开发经验谈Android开发
Kotlin“盛装”数据的小容器——变量

Kotlin“盛装”数据的小容器——变量

作者: 程序员丶星霖 | 来源:发表于2019-06-06 10:42 被阅读7次

    无论什么编程语言,总是要处理数据的,处理数据就需要使用变量来保存数据。

    常量与变量的区别是:

    1. 常量一旦保存某个数据之后,该数据就不会发生改变;
    2. 变量保存的数据则可以多次发生改变,只要程序对变量重新赋值即可。

    一、分隔符

    Kotlin语言中的分隔符包括:分号(;)、花括号({})、方括号([])、圆括号(())、空格、圆点(.)。

    1.1、分号

    Kotlin不强制要求每条语句必须以分号结尾,当然也可以使用分号表示语句结束。

    如果单独一行内只有一条语句,Kotlin允许这条语句不以分号结尾。如果在同一行内写多条语句,则前面语句需要使用分号表示结束。

    var name ="HunterArley";println(name)
    

    Kotlin允许一条语句可以跨多行。

        var name = "HunterArley"
        name +=
                ".top"
        var hasH = name.startsWith("Hun")
        var len = name
            .length
        println(hasH)
        println(len)
    

    语句是可以跨多行的,但是一个字符串、变量名不能夸多行。

    1.2、花括号

    花括号的作用就是定义一个代码块。一个代码块指的就是“{”和“}”所包含的一段代码。代码块在逻辑上是一个整体。

    对于Kotlin而言,类体部分、枚举和方法体需要放在花括号中定义。

    条件语句中的条件执行体和循环语句中的循环体也要放在代码块里。

    1.3、方括号

    Kotlin中的方括号是一个索引运算符,其主要作用是用于访问数组元素、List集合元素和Map集合元素。

    1.4、圆括号

    圆括号是一个功能非常丰富的分隔符,在定义函数、方法时必须使用圆括号来包含所有的形参声明,在调用函数时也必须使用圆括号来传入实参值。圆括号还可以将表达式中某个部分括成一个整体,保证这个部分优先计算。

    1.5、空格

    Kotlin语言使用空格分隔一条语句的不同部分。
    Kotlin中的空格包含空格符(Space)、制表符(Tab)和回车符(Enter)等。

    1.6、圆点

    圆点(.)通常用作类、结构体、枚举、实例和它的成员之间的风格符,表明调用某个类或某个实例的指定成员。

    二、标识符规则

    标识符,就是用于给程序中的变量、累、枚举函数等命名的名字。

    标识符的长度没有限制。

    Kotlin在使用标识符时,需要逐一一下规则:

    1. 标识符可以由字符、数字和下划线(_)组成,但不能以数字开头。
    2. 标识符不能是Kotlin的硬关键字,在特定上下文中不能使用软关键字和修饰关键字,但可以包含关键字。
    3. 标识符不能包含空格。
    4. 标识符只能包含下划线(_),不能包含@、#等特殊字符。

    三、Kotlin中的关键字

    Kotlin中的一些具有特殊用途的单词被称为关键字(keyword),定义标识符的时候,不要与关键字相同,否则将引起错误。

    Kotlin的关键字可以分为3类:

    1. 硬关键字:无论在什么情况下都不能用作标识符。
    2. 软关键字:可以在它们不起作用的上下文中用作标识符。
    3. 修饰符关键字:可以在代码中用作标识符。

    Kotlin的硬关键字:

    关键字 关键字的作用
    as 用于做类型转换或为import语句指定别名
    as? 类型安全的类型转换运算符
    break 中断循环
    class 声明类
    continue 忽略本次循环剩下的语句,重新开始下一次循环
    do 用于do while循环
    else 在if分支中使用
    false 在Boolean类型中表示假的直接量
    for 用于for循环
    fun 声明函数
    if 在if分支中使用
    in 在for循环中使用;in还可以作为双目运算符,检查一个值是否处于区间或集合内;in也可以在when表达式中使用;in还可用于修饰泛型参数,表明该泛型参数支持逆变。
    !in 可作为双目运算符in的反义词;!in也可在when表达式中使用
    is 用于做类型检查(类似Java中的instanceof)
    !is 用于做类型检查
    null 代表空的直接量
    object 用于声明对象表达式或定义命名对象
    package 用于为当前文件指定包
    return 声明函数的返回
    super 用于引用父类实现的方法或属性,或者在子类构造器中调用父类构造器。
    this 代表当前类的对象或在构造器中调用当前类的其他构造器
    throw 用于抛出异常
    true 在Boolean类型中表示真的直接量
    try 开始异常处理
    typealias 用于定义类型别名
    val 声明只读属性或变量
    var 声明可变属性或变量
    when 用于when表达式
    while 用于while循环或do while循环

    Kotlin的软关键字:

    关键字 关键字的作用
    by 用于将接口或祖先类的实现代理给其他对象
    catch 在异常处理中用于捕捉异常
    constructor 用于声明构造器
    delegate 用于指定该注解修饰委托属性存储其委托实例的字段
    dynamic 主要用于在Kotlin/JavaScript中引用一个动态类型
    field 用于指定该注解修饰属性的幕后字段
    file 用于指定该注解修饰该源文件本身
    finally 异常处理中的finally块
    get 用于声明属性的getter方法,或者用于指定该注解修饰属性的getter方法
    import 用于导包
    init 用于声明初始化块
    param 用于指定该注解修饰构造器参数
    property 用于指定该注解修饰整个属性
    receiveris 用于指定该注解修饰扩展方法或扩展属性的接收者
    set 用于声明属性的setter方法,或者用于指定该注解修饰属性的setter方法
    setparam 用于指定该注解修饰setter方法的参数
    where 用于为泛型参数增加限制

    Kotlin的修饰符关键字:

    关键字 关键字的作用
    abstract 用于修饰抽象类或抽象成员
    annotation 用于修饰一个注解类
    companion 用于声明一个伴生对象
    const 用于声明编译时常量
    crossinline 用于禁止在传给内联函数的Lambda表达式中执行非局部返回
    data 用于声明数据类
    enum 用于声明枚举
    external 用于声明某个方法不由Kotlin实现
    final 用于禁止被重写
    infix 声明该函数能以双目运算符的格式执行
    inline 用于声明内联函数,Lambda表达式可在内联函数中执行局部返回
    inner 用于声明内部类,内部类可以访问外部类的实例
    internal 用于表示被修饰的声明只能在当前模块内可见
    lateinit 用于修饰一个non-null属性,用于指定该属性可在构造器之外的地方完成初始化
    noinline 用于禁止内联函数中个别Lambda表达式被内联化
    open 用于修饰类,表示该类可派生子类;或者用于修饰成员,表示该成员可以被重写
    out 用于修饰泛型参数,表明该泛型参数支持协变
    override 用于声明重写父类的成员
    private private访问权限
    protected protected访问权限
    public public访问权限
    reified 用于修饰内联函数中的泛型形参,接下来在该函数中就可像适用普通类型一样使用该类型参数
    sealed 用于声明一个密封类
    suspend 用于标识一个函数后Lambda表达式可作为暂停
    tailrec 用于修饰一个函数可作为尾随递归函数使用
    vararg 用于修饰形参,表明该参数是个数可变的形参

    四、声明变量

    Kotlin是强类型的语言,其变量必须先声明、后使用,声明变量时必须显式或隐式指定变量的类型,类型限制了一个变量能被赋的值,也限制了一个表达式可以产生的值,还限制了在这些值上可以进行的操作。

    声明变量需要使用var或val:

    var|val  变量名 [:类型]  [=  初始值]
    
    • var声明的变量是值可变的;
    • val声明的变量是值不可变的。

    不能在声明变量时既不指定变量类型,也不指定变量初始值。

    根据常量所在的位置不同,Kotlin的常量分为两种:

    1. 局部范围的常量:这种常量允许在声明时不指定初始值,只要在第一次使用之前指定初始值即可。
    2. 类的常量属性:这种常量属性既可以在声明时指定初始值,也可以在类或结构体的构造器中指定初始值。
        //定义常量,没有显式指定类型
        val maxAge = 110
        //定义常量时,显式指定了常量的类型和常量的初始值
        val name: String = "HunterArley"
        //局部范围的常量,声明时不指定初始值
        val myName: String
    

    学海无涯苦作舟

    我的微信公众号.jpg

    相关文章

      网友评论

        本文标题:Kotlin“盛装”数据的小容器——变量

        本文链接:https://www.haomeiwen.com/subject/osglxctx.html