小鸭子的学习笔记duck

Duck Blog

唐如飞

( ^∀^)/欢迎\( ^∀^)

79 文章数
14 评论数

Kotlin-基础(day-1)

tangrufei
2023-02-22 / 0 评论 / 194 阅读 / 0 点赞

前言

Kotlin 是一种在 Java 虚拟机上运行的静态类型编程语言,被称之为 Android 世界的Swift,由 JetBrains 设计开发并开源。

Kotlin 可以编译成Java字节码,也可以编译成 JavaScript,方便在没有 JVM 的设备上运行。

在Google I/O 2017中,Google 宣布 Kotlin 成为 Android 官方开发语言。

kotlin 走全栈语言之路

各个语言的精华聚集一身的新时代语言

kotlin的优势

1. 全面支持Lambda表达式

2. 数据类(Data Class)

3. 函数字面量和内联函数

4. 函数拓展

5. 空安全

6. 智能转换

7. 字符串模板

8. 主构造函数

9. 类委托

10. 类型判断

11. 单例

12. 声明点变量

13. 区间表达式

kotlin语言的跨平台性

kotlin跨平台不仅可以通过JVM实现跨平台,还可以通过二进制实现跨平台

kotlin语言声明变量以及内置数据类型

fun main(args: Array<String>) {
    println("Hello World!")

    //TODO ==================声明变量

    /**
           可读可改        变量名   类型        值
           var           name  : String = "Hello World"
     */
    var name = "Oh~~yeh"
        name = "Oh~~~No"
    println(name)
	 //TODO ==================内置数据类型
    /**
        String     字符串
        Char       单字符
        Boolean    true/false
        Int        整型
        Double     小数
        List       集合
        Set        无重复的集合
        Map        键值对

        Int    ---》 java int
        Float  ---》  java float
     */

}

kotlin语言的推断以及只读变量

fun main() {
    //TODO ==================Kotlin语言的只读变量
    // 默认提示:变量永远不会被修改,建议改成 val ==不可改变的量
    var result ="ZS"
    val result1 = "ZS"
    result="LS"
    //result1="LS" 不可变量
    //TODO ==================kotlin的语言推断
    var info:String = "zs"//这里类型推断时多余的
    var info1 =true
    var info2:Boolean =true
    var info3 =1.324f 
    var info4 =13312421L
}

kotlin编译时常量

const val b = "" //定义编译时常量
fun main() {
    //TODO ==================Kotlin语言的编译时常量
    /** 编译时常量只能是常用的基本数据类型:(String,Double,Int,Float,Long,Short,Byte,Char,Boolean) */

    val a = ""  //这个称为只读类型的变量

    //const val b = "" //提示修饰符不适用于  局部变量
    //TODO ==================编译时常量只能定义在函数之外,为什么?
    //TODO ==================如果在函数之内定义,就必须在运行时才能函数赋值,何来编译时常量一说
    //TODO ==================结论:编译时常量只能在函数之外定义,这样就可以在编译期初始化了
}

Kotlin查看字节码文件

kotlin引用数据类型

fun main() {
    //TODO ==================Kotlin语言的引用数据类型学习
    var age: Int? = 18 //Int   引用类型会不会耗费性能 自动拆箱
    var pi =3.1415f //
    var pi2 =3.1415 //
}

kotlin range表达式

  fun main() {
        //TODO ==================Kotlin语言的range表达式
        var number =148

        // range范围 从哪里  到哪里
        if  (number in 1..100) {
            println("正常")
        }else if (number in 100..1000) {
            println("不正常")
        }
    }

kotlin when表达式

kotlin String模板

 fun main() {
        //TODO ==================Kotlin语言的String模板
        var garden="森林公园"
        var data ="2022/2/22"

    println("今天天气真不错打算去${garden},就决定${data}去吧!")//今天天气真不错打算去森林公园,就决定2022/2/22去吧!
    // KT的if是表达式,所以可以更灵活, Java的if是语句,还有局限性
        val isLogin = false
        //sever is login result: 登陆失败哦
        println("sever is login result: ${if (isLogin) { "恭喜你登陆成功" } else { "登陆失败哦" }}")
    }

kotlin函数头学习


kotlin函数参数的默认参数

 fun main() {
        //TODO ==================Kotlin中的函数参数的默认参数
       action("张三") //我的姓名是:张三,我的年龄是:77
        action("李四",99)//我的姓名是:李四,我的年龄是:99
    }
    private fun action(name:String,age:Int=77){
    println("我的姓名是:${name},我的年龄是:${age}")
    }

kotlin语言的具名函数参数

![](https://java0420-1313026349.cos.ap-chengdu.myqcloud.com/attach/20230222/4460226e8f804acd8a4165f8d46c7801.png)

kotlin中的Unit函数特点

fun main() {
        //TODO ==================Kotlin中的Unit函数特点
    }
    //, Java语言的void关键字(void是无参数返回的忽略类型) 但是他是关键字不是某一个类型
    // :Unit不写,默认也有,Unit代表   无参数返回   忽略类型  ==Unit类型类
    private fun dowork():Unit{
        println("")
    }

kotlin语言的Nothing类型特点

   fun main() {
        //TODO ==================Kotlin语言的Nothing类型特点
        show(-1)
    }
    private fun  show(number: Int){
        when(number){
            -1 ->TODO ("没有这种分数")
            in 0..1 ->println("分数不及格")
            in 2..10 -> println("分数不及格")
            in 11..20 -> println("分数不及格")
            in 21..30 -> println("分数及格")
        }
    }
    interface A {
        fun show()
    }
    class AImpl : A {
        override fun show() {
            //下面这句话不是注释提示,会终止程序的
            TODO("Not yet implemented")
        }

    }

Kotlin语言的反引号中的函数名特点

public class Demo03 {
    //in is 在Java里面就是普通函数
    public static final void in(){
        System.out.println("in run success");
    }
    public static final void is(){
        System.out.println("is run success");
    }
}
   fun main() {
        //TODO ==================Kotlin语言的反引号中的函数名特点
        //第一种情况
        `登陆功能 2023年八月八日测试环境下 测试登陆功能 需求编码人是tangrufei`("张三","123456")

        //第二种情况://in is 在Kotlin里面是关键字
        Demo03.`in`()
        //第三种情况:很少发生
        `21314514`()
    }
    private  fun `登陆功能 2023年八月八日测试环境下 测试登陆功能 需求编码人是tangrufei`(name: String,pwd: String){
        println("模拟用户人是:${name},密码是:${pwd}")
    }
    private fun `21314514`(){
        //核心功能
        //对应了公司某个功能,功能很复杂,某个文档上记录这个数字代表的函数的作用
    }
文章不错,扫码支持一下吧~
上一篇 下一篇
评论
来首音乐
光阴似箭
今日已经过去小时
这周已经过去
本月已经过去
今年已经过去个月