Kotlin详尽语法分析(未完待续)

简介: 待续 一、Kotlin友好的语法 Kotlin不是诞生于学术界的一些不可思议难以理解的语法,它的语法类似于很多面向对象的语法,并且非常易于理解。

待续
一、Kotlin友好的语法
Kotlin不是诞生于学术界的一些不可思议难以理解的语法,它的语法类似于很多面向对象的语法,并且非常易于理解。
但是它又与传统的面向对象的Java有些区别,例如kotlin的val、var变量的声明。
例如:

二、相似友好的语法

/**
 * @author:wangdong
 * @description:Foo demo
 */
class Foo {

    //val 声明的变量是不可以改变的
    val b: String = "b"
    //var 声明是可以改变的
    var i: Int = 0

    //可以根据等号右边的类型,自动判断赋予左边变量的类型
    fun hello(){
        val str = "hello"
        print("$str world")
    }

    //根据传入的变量,求和
    fun sum(x: Int,y: Int): Int{
        return x + y;
    }

    //根据传人的变量,求最大值
    //如果a大于b,则返回a,否则返回b
    fun maxOf(a: Float, b: Float) = if(a > b) a else b

}

三、字符串的插入和计算
在字符串的插入和计算方面,类似于Java的String.format()。
例如:

fun stringDemo(){
        val x = 4;
        val y = 7;
        print("sum of $x and $y is ${x + y}")
        //会输出"sum of 4 and 7 is 11"
    }

四、
Kotlin will infer your types wherever you feel it will improve readability:
如果没有指定变量的类型的话,Kotlin可以根据改善阅读,自动赋予变量的类型

fun inferenceDemo() {
        val a = "abc"  //会自动推测为String类型
        var b = 4      //会自动推测为String类型

        val c: Double = 0.7  //明确的c的类型为Double
        val d: List<String> = ArrayList() //明确d的类型为List<String>
    }

五、
更灵活的类型转化

/**
 * @author:wangdong
 * @description:第一个kotlin项目
 */
fun main(args: Array<String>) {

    var obj = "Hello";
    //会将小写字母转化成大写输出
    if (obj is String) {
        print(obj.toUpperCase())     // obj is now known to be a String
    }
}

输出结果
这里写图片描述

六、更直观的相等比较

//因为两个对象属性完全一样
val john1 = Person("John")
val john2 = Person("John")
//判断结构相等用==
john1 == john2    // true  (structural equality)
//判断引用相等用===
john1 === john2   // false (referential equality)

七、灵活变化的参数和方法运用
可以通过类,调用方法传入指定类型的参数

fun build(title: String, width: Int = 800, height: Int = 600) {
    Frame(title, width, height)
}

八、更多样化的方法调用方式
下面来模拟调用第七步中的build方法,三种方式都是一样的

build("PacMan", 400, 300)                           // equivalent
build(title = "PacMan", width = 400, height = 300)  // equivalent
//参数顺序如果颠倒了,则需要指定前缀
build(width = 400, height = 300, title = "PacMan")  // equivalent

九、更灵活的表达在When判断语句

/**
 * @author:wangdong
 * @description:第一个kotlin项目
 */
fun main(args: Array<String>) {

    var x = 2
    //根据x的值走对应的一行,下面走x is 2
    when (x) {
        1 -> print("x is 1")
        2 -> print("x is 2")
        3, 4 -> print("x is 3 or 4")
        in 5..10 -> print("x is 5, 6, 7, 8, 9, or 10")
        else -> print("x is out of range")
    }
}

它在一个表达式或者一个声明中都是有用的
例如:

fun main(args: Array<String>) {

    var obj = "20"
    val res: Boolean = when {
        obj == null -> false
        //走这一层
        obj is String -> true
        else -> throw IllegalStateException()
    }
    print(res)
}

最终输出的结构true

十、更灵活的Bean实体类中的set和get方法

class Frame {
    var width: Int = 800
    var height: Int = 600

    val pixels: Int
        get() = width * height
}

调用类Frame中的get方法,得到的结果就是480000

十一、更灵活的对象创建和复制
It’s a POJO complete with toString(), equals(), hashCode(), and copy(), and unlike in Java it won’t take up 100 lines of code:
比Java的创建和赋值方便太多了

/**
 * @author:wangdong
 * @description:第一个kotlin项目
 */
fun main(args: Array<String>) {

    data class Person(val name: String,
                      var email: String,
                      var age: Int)

    val john = Person("John","John@gmail.com",121)

    print(john)
}

输出结果:

Person(name=John, email=John@gmail.com, age=121)

十二、更灵活的预先重载的方法
A predefined set of operators can be overloaded to improve readability:
例如:

/**
 * @author:wangdong
 * @description:第一个kotlin项目
 */
fun main(args: Array<String>) {

    data class Vec(val x: Float,val y: Float){

        operator fun plus(v: Vec) = Vec(x + v.x, y + v.y)
    }

    val v = Vec(2.5f,3f) + Vec(4f, 1f)

    print(v)
}

输出的结果是Vec(x=6.5, y=4.0)
具体咱们来debug看一下
这里写图片描述
可以简单理解为x+x,y+y

本次暂时分享到这里了。

目录
相关文章
|
11天前
|
移动开发 Java Android开发
构建高效Android应用:探究Kotlin与Java的性能差异
【4月更文挑战第3天】在移动开发领域,性能优化一直是开发者关注的焦点。随着Kotlin的兴起,其在Android开发中的地位逐渐上升,但关于其与Java在性能方面的对比,尚无明确共识。本文通过深入分析并结合实际测试数据,探讨了Kotlin与Java在Android平台上的性能表现,揭示了在不同场景下两者的差异及其对应用性能的潜在影响,为开发者在选择编程语言时提供参考依据。
|
12天前
|
数据库 Android开发 开发者
构建高效Android应用:Kotlin协程的实践指南
【4月更文挑战第2天】随着移动应用开发的不断进步,开发者们寻求更流畅、高效的用户体验。在Android平台上,Kotlin语言凭借其简洁性和功能性赢得了开发社区的广泛支持。特别是Kotlin协程,作为一种轻量级的并发处理方案,使得异步编程变得更加简单和直观。本文将深入探讨Kotlin协程的核心概念、使用场景以及如何将其应用于Android开发中,以提高应用性能和响应能力。通过实际案例分析,我们将展示协程如何简化复杂任务,优化资源管理,并为最终用户提供更加流畅的体验。
|
21天前
|
调度 数据库 Android开发
构建高效Android应用:Kotlin协程的实践与优化
在Android开发领域,Kotlin以其简洁的语法和平台友好性成为了开发的首选语言。其中,Kotlin协程作为处理异步任务的强大工具,它通过提供轻量级的线程管理机制,使得开发者能够在不阻塞主线程的情况下执行后台任务,从而提升应用性能和用户体验。本文将深入探讨Kotlin协程的核心概念,并通过实例演示如何在实际的Android应用中有效地使用协程进行网络请求、数据库操作以及UI的流畅更新。同时,我们还将讨论协程的调试技巧和常见问题的解决方法,以帮助开发者避免常见的陷阱,构建更加健壮和高效的Android应用。
29 4
|
23天前
|
移动开发 Java Android开发
构建高效Android应用:Kotlin协程的实践之路
【2月更文挑战第31天】 在移动开发领域,性能优化和流畅的用户体验一直是开发者追求的目标。随着Kotlin语言的流行,其异步编程解决方案——协程(Coroutines),为Android应用带来了革命性的并发处理能力。本文将深入探讨Kotlin协程的核心概念、设计原理以及在Android应用中的实际应用案例,旨在帮助开发者掌握这一强大的工具,从而提升应用的性能和响应能力。
|
24天前
|
安全 Android开发 开发者
构建高效Android应用:Kotlin与协程的完美结合
【2月更文挑战第30天】在移动开发领域,性能优化和流畅的用户体验是关键。本文深入探讨了如何通过结合Kotlin语言和协程技术来提升Android应用的性能和响应能力。我们将分析Kotlin的优势,介绍协程的基本概念,并通过实际案例展示如何在应用中实现协程以简化异步编程,从而提供更加高效的解决方案。
|
24天前
|
Java 编译器 Android开发
构建高效Android应用:探究Kotlin与Java的性能差异
【2月更文挑战第30天】 随着Kotlin成为开发Android应用的首选语言,开发者社区对于其性能表现持续关注。本文通过深入分析与基准测试,探讨Kotlin与Java在Android平台上的性能差异,揭示两种语言在编译效率、运行时性能和内存消耗方面的具体表现,并提供优化建议。我们的目标是为Android开发者提供科学依据,帮助他们在项目实践中做出明智的编程语言选择。
|
24天前
|
移动开发 调度 Android开发
构建高效Android应用:探究Kotlin协程的优势与实践
【2月更文挑战第30天】 在移动开发领域,尤其是针对Android平台,性能优化和应用流畅度始终是开发者关注的重点。近年来,Kotlin语言凭借其简洁性和功能性成为Android开发的热门选择。其中,Kotlin协程作为一种轻量级的线程管理解决方案,为异步编程提供了强大支持,使得编写非阻塞性代码变得更加容易。本文将深入分析Kotlin协程的核心优势,并通过实际案例展示如何有效利用协程提升Android应用的性能和响应速度。
|
24天前
|
数据库 Android开发 开发者
构建高效Android应用:采用Kotlin协程优化网络请求处理
【2月更文挑战第30天】 在移动应用开发领域,网络请求的处理是影响用户体验的关键环节。针对Android平台,利用Kotlin协程能够极大提升异步任务处理的效率和简洁性。本文将探讨如何通过Kotlin协程优化Android应用中的网络请求处理流程,包括协程的基本概念、网络请求的异步执行以及错误处理等方面,旨在帮助开发者构建更加流畅和响应迅速的Android应用。
|
29天前
|
移动开发 Java Android开发
构建高效Android应用:Kotlin与协程的完美融合
【2月更文挑战第25天】 在移动开发领域,性能优化和应用响应性的提升是永恒的追求。随着Android Jetpack组件库的不断丰富,Kotlin语言已经成为Android开发的首选。而Kotlin协程作为一种新的并发处理方案,它以轻量级线程的形式,为开发者提供了简洁高效的异步编程手段。本文将深入探讨Kotlin协程在Android应用中的实践运用,以及如何通过这种技术改善用户界面的流畅度和后台任务的处理能力,进而构建出更高效、更稳定的Android应用。
|
13天前
|
Java Android开发 开发者
构建高效Android应用:Kotlin协程的实践与优化
在响应式编程范式日益盛行的今天,Kotlin协程作为一种轻量级的线程管理解决方案,为Android开发带来了性能和效率的双重提升。本文旨在探讨Kotlin协程的核心概念、实践方法及其在Android应用中的优化策略,帮助开发者构建更加流畅和高效的应用程序。通过深入分析协程的原理与应用场景,结合实际案例,本文将指导读者如何优雅地解决异步任务处理,避免阻塞UI线程,从而优化用户体验。