Kotlin编程权威指南学习知识点预览

本文全面介绍了Kotlin编程的基础知识,涵盖变量、常量、类型、条件语句、函数等内容。详细讲解了Kotlin的语法特性,如类型推断、null安全等,还介绍了与Java的互操作性。通过学习这些知识,开发者能更好地掌握Kotlin编程。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

一、变量、常量和类型:

        变量、常量以及 Kotlin 基本数据类型。变量常量在 应用程序中可用来储值和传递数据。类型则用来描述常量或变量中保存的是什么样的数据。    

        1、声明变量:

// 变量定义关键字 —— 变量名 —— 类型定义 —— 赋值运算符 —— 赋值
    var name : Int = 5

        2 、Kotlin的内置数据类型:

        3、只读变量:

                Kotlin 提供了一种语法来声明只读变量,也就是说,变量一旦赋值就不能更改。

                要声明可修改变量,使用 var 关键字。要声明只读变量,使用 val 关键字。

         4、类型推断:

                Kotlin 有个语言特性叫类型推断,对 于已声明并赋值的变量,它允许你省略类型定义。

var age = 5
val fristName = "Everbrilliant89"

          5、编译时常量: 

               编译时常量只能在函数(指包括 main 在内的所有函数)之外定义。这是因为,编译时常量必须在编译时(程序编译时)赋值,而 main 和其他函数都是在运行时(程序运行时)才调用, 函数内的变量也是在那时赋值。编译时常量要在这些变量赋值前就已存在。

const val MAX_VALUE = 5000

          

二、条件语句:

        1、if/else语句:

        2、range :

                在 in 1..5 中,..是一种操作符,表示某个范围(range)。范围包括从..操作符左侧的值到..操作符右侧值的一系列值。所以,1..5 包括 12345。除了数字,范围也可以是一 系列字符。

        3、when表达式:

                when 表达式是 Kotlin 的另一个控制流工具。类似于 if/else 语句,when 表达式允许你编写条件式,在某个条件满足时,就执行对应的代码。它的语法比较简洁,非常适合有三到四个分支 的情况。

 fun demoFunc() {
        val faction = when(race) {
            "dwarf" -> "Keepers of the Mines"
            "gnome" -> "Keepers of the Mines"
            "orc" -> "Free People of the Rolling Hills"
            "human" -> "Free People of the Rolling Hills"
            else -> "noName"
        }
    }

三、函数:

        函数是能完成某项特定任务的可复用代码块,是编程非常重要的一部分。

        1、函数结构的剖析:

                一个函数的两个主要部分:函数头和函数体。

 

        2、函数头:

       

  • 修饰符:private、public、protected
  • 函数声明关键字:fun
  • 函数名:
  • 函数参数:函数参数总是只读的,你不能在函数体内再给它们赋值。
  • 函数返回类型

         3、函数的作用域:

         4、默认值参数: 

                参数列表中可以给参数赋值默认的值。

 private fun castFirebal(numFireballs: Int = 2) {
      println("A glass of Fireball springs into existence. (x$numFireballs)")
    }

          5、 单表达式函数:

                 函数都只有一个表达式语句,或者说都只有一条求 值语句。Kotlin 提供了更简单的方式来定义这类函数,对于这类单表达式函 数,返回类型、花括号、返回语句都可以省掉。

   

private fun castFirebal(numFireballs: Int = 2) 
    = println("A glass of Fireball springs into existence. (x$numFireballs)")

             6、具名函数参数:   

        castFirebal(5)
        //具名函数
        castFirebal(numFireballs = 6)

             7、Unit函数:

                Kotlin 使用 Unit 返回类型表明这样一件事:函数没有返回值。函数定义 中如果没使用 return 关键字,那暗含的意思就是,Unit 就是这个函数的返回类型。

             8、Nothing类型: 

                Kotlin 还有一种叫作 Nothing 的类型。类似于 UnitNothing 类型的函数也不返回任何东 西。但这是它们唯一相同的地方。在编译器看来,Nothing 就意味着函数不可能成功执行完成, 它要么抛出异常,要么因某个原因再也返不回调用处。

             9、Java中的文件级函数:

                 Java 中,函数和变量都只能定义在类里,但 Kotlin 没有这样 的要求。

            10、函数重载:

                如果一个函数有多种实现,就可以说它被重载了。默认值参并 不是重载的唯一方式。你可以用相同的函数名定义多个实现。

             11、反引号中的函数名:

                定义或调用以空格和其他特殊字符命名的函数,不过,函数名要用一对反引号括起来。首先是支持 Java 互操作。Kotlin 提供了很多便利的工具,支持在 Kotlin 文件中调用现有 Java 代码的方法(Kotlin Java 的互操作详见第 20 章)。Kotlin Java 各自有不同的保留关键字,不 能用作函数名。使用反引号括住函数名就能避免任何潜在冲突。

                在 Kotlin 中,is 是个保留关键字(你会在第 14 章中看到,Kotlin 的标准库有个 is 操作符, 可以用来检查实例类型)。而在 Java 中,is 不是关键字,所以是有效的方法名。有了反引号,就 可以在 Kotlin 中调用 Java is 方法了。

          

四、匿名函数与函数类型:

                定义时不取名字的函数,我们称之为匿名函数。匿名 函数和具名函数既相似又不同。明显的不同之处有两个:匿名函数的定义中没有名字;和其他代码交互的方式有点特别。匿名函数通常整体传递给其他函数,或者从其他函数返回。这种交互主 要靠函数类型函数参数实现。

            1、匿名函数:

                    把一个匿名函数作为参数传递给 count 函数: 

    val numLetters = "guangdongshenzhen".count({
        letters -> letters == 's'
    })
    //匿名函数作为参数传入函数count
    val numLetters1 = "guangdongshenzhen".count { letters ->
        letters == 's'
    }

    //count函数在源码中的定义
    public inline fun CharSequence.count(predicate: (Char) -> Boolean): Int {
        var count = 0
        for (element in this) if (predicate(element)) ++count
        return count
    }

  • 函数类型:匿名函数也有类型,我们称其为函数类型(function type)。匿名函数可以当作变量值赋给函数类
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值