首页
学习
活动
专区
工具
TVP
发布
精选内容/技术社群/优惠产品,尽在小程序
立即前往

干货 | Kotlin超棒的语言特性

表达式托底,即若整个表达式已经为null的情况下,Elvis表达式能够让这个表达式有个自定义的默认。这样进一步保证了空安全,同时代码也不失简洁性。...03 更简洁的字符串 同Java一样,Kotlin也可以用字面量对字符串对象进行初始化,但Kotlin有个特别的地方是使用了三引号”””来方便长篇字符串的书写。而且这种方法还不需要使用转义符。...做到了字符串的所见即所得。 ? 同时,Kotlin还引入了字符串模板,可以在字符串中直接访问变量和使用表达式: ?...Kotlin能够扩展一个的新功能,这个扩展是无痕的,即我们无需继承该类或使用像装饰者的设计模式,同时这个扩展使用者来说也是透明的,即使用者在使用该类扩展功能时,就像使用这个自身的功能一样的。...Regex 三是使用实现函数类型接口的自定义的实例 ?

1.4K40
  • 您找到你想要的搜索结果了吗?
    是的
    没有找到

    介绍Kotlin第一部分(翻译篇)

    在这个代码块中,我们使用默认来定义我们的函数参数。当我们这么写的时候,我们可以直接调用该函数的0个、1个或者多个它的参数。 ③ ,接口和对象 与Java一样,Kotlin也具有和接口。...我们可以自定义在里面添加fun功能。...= CanadianPerson(wheeler) } inner class CanadianPerson(val snipe: String) // 美元符号使用字符串...最后,我们将调用一个函数,这个函数将返回一个String,它使用字符串将它们解析并展示出来。 当向添加其他构造函数时,我们需要调用它们原始的构造函数。...第二个例子中使用step关键字,表示我们要从这个范围中取其它。第三个例子循环列表,将listof打印出来。 总结 以上就是Kotlin语言的基本组成部分,有了这些你就可以使用Kotlin了。

    65740

    Kotlin】DSL 领域特定语言 ( apply 标准库函数分析 | 普通匿名函数 | 扩展匿名函数 | 泛型扩展匿名函数 )

    apply 函数接收 普通匿名函数 参数 使用 this 关键字报错 使用变量名调用外部变量 2、自定义 apply 函数接收 扩展匿名函数 参数 3、自定义 apply 函数接收 泛型扩展匿名函数...* ' this '作为接收者调用指定函数[block],并返回' this '。...T.() -> Unit 中的 T. , 上述函数接收的就是一个 参数为空 , 返回为空 的 Lambda 表达式 ; 4、扩展函数回顾 在回忆下扩展函数 , 为现有的定义扩展函数 , 如 : 为...】扩展函数总结 ( 超扩展函数 | 私有扩展函数 | 泛型扩展函数 | 扩展属性 | 定义扩展文件 | infix 关键字用法 | 重命名扩展函数 | Kotlin 标准库扩展函数 ) 博客就进行理解...Lambda 表达式参数类型 T.() -> Unit ; 参考 【Kotlin扩展函数总结 ( 超扩展函数 | 私有扩展函数 | 泛型扩展函数 | 扩展属性 | 定义扩展文件 | infix 关键字用法

    69310

    遇见 Kotlin 先导篇:Kotlin 相比 Java 好在哪里?

    Kotlin兼容Java,相比于Java而言,它有很多优点,待会笔者会就几个写一下,并给出实际例子。 Kotlin文件".kt"作为拓展名,这是Kotlin的官方参考文档。...在这笔者顺便打个广告 广告内容 腾讯课堂《跟鹅厂老司机学新技术》系列课程第一课 “遇见Kotlin” 将于今晚8点半开始啦 本期的主题为如何学习Kotlin和分享一些学习Kotlin过程的小技巧...对字符串的操作 这里拿对字符串来说 Demo val x = 1 val y = 2 print("sum of $x and $y is ${x + y}") //输出结果:sum of...也可以使用内联函数identityEquals() 判断参照相等。 结构相等: ==: 判断的。a, b的是不是一样的,相当于y1.equals(y2)。 优点5....扩展函数 向已有的里添加新的函数 这是官方文档 Demo fun String.replaceSpaces(): String { return this.replace(' ', '_')

    2.5K40

    31 天,从浅到深轻松学习 Kotlin

    Day 3:String 模板 格式化字符串?将$放在变量名的前面去表达字符串中的变量和表达式。使用 ${expression} 求表达式的。 Day 4:When 表达式 强大的 switch!...Day 6:属性 在 Kotlin 中,可以具有可变和只读属性,默认情况下生成 getter 和 setter。如果需要,您也可以实现自定义的。...Day 7:解构声明 Android KTX 使用解构来分配颜色的组件。您可以在您的使用解构,或者扩展现有的来添加解构。...第三周学习小结: 本周主要讨论一些基本的 Kotlin 特性,如运算符重载,内联,运算符重载,懒加载,以及非常强大的 inLine,并展示了使用 Android KTX 处理内容,捆绑包和回调时如何编写更简洁的代码...Day 26:延期方法 没有更多的 Util 。通过使用扩展功能扩展的功能。把您要扩展的名字放在您添加的方法的名字前面。

    2.2K30

    Spring认证中国教育管理中心-Spring Data R2DBC框架教程七

    本综合教程将教您如何使用start.spring.io使用 Kotlin 构建 Spring Boot 应用程序。...17.1.要求 Spring Data 支持 Kotlin 1.3 并要求kotlin-stdlib(或其变体之一,例如kotlin-stdlib-jdk8)和kotlin-reflect存在于路径中...这通过可空性声明和“或无”语义的表达使应用程序更安全,而无需支付包装器的成本,例如Optional. (Kotlin 允许使用具有可为空的函数式构造。请参阅Kotlin安全性综合指南。)...17.3.对象映射 有关Kotlin对象如何具体化的详细信息,请参阅Kotlin 支持。 17.4.扩展 Kotlin扩展提供了使用附加功能扩展现有的能力。...Spring Data Kotlin API 使用这些扩展为现有的 Spring API 添加新的 Kotlin 特定的便利。 请记住,需要导入 Kotlin 扩展才能使用

    1.3K40

    Scala教程之:可扩展的scala

    Scala是扩展的,Scala提供了一种独特的语言机制来实现这种功能: 隐式:允许给已有的类型添加扩展方法 字符串:可以让用户使用自定义器进行扩展 隐式 隐式是在scala 2.10中引入的...待处理字符串字面通过“号前的字符来标示(例如:上例中是s)。 Scala 提供了三种创新的字符串方法:s,f 和 raw. s 字符串器 在任何字符串前加上s,就可以直接在串中使用变量了。...器知道在这个字符串的这个地方应该插入这个name变量的,以使输出字符串为Hello,James。使用s器,在这个字符串中可以使用任何在处理范围内的名字。 字符串器也可以处理任意的表达式。...这种%开头的格式在 [Formatter javadoc] 中有相关概述。如果在具体变量后没有%,则格式化程序默认使用 %s(串型)格式。...自定义器 在Scala中,所有处理过的字符串字面值都进行了简单编码转换。

    1.2K10

    Kotlin扩展函数 ① ( 扩展函数简介 | 为 Any 超定义扩展函数 | private 私有扩展函数 | 泛型扩展函数 | 标准函数 let 函数是泛型扩展函数 )

    扩展函数 , 可以在 不修改 原有 的情况下 增加的功能 ; Kotlin 中如果类 没有被 open 关键字修饰 , 则该类 不能被继承 , 如果想要扩展该类 , 可以使用 扩展函数 ; 扩展函数...可以作用于 自定义 , 也可以作用于 系统自带的 , 如 String , List , 等 标准库 API ; 为 某个 定义扩展函数 , 格式为 : fun 名.扩展函数名(参数列表...): 返回类型 { 函数体 } 定义扩展函数 与 定义普通函数唯一的区别是 扩展函数 前多了 名. ; 下面的代码中 , 为 String 定义扩展函数 , 拼接原字符串扩展函数参数 , 并将结果返回...超中定义了扩展函数 , 则在整个项目中 , 该扩展函数都有效 ; 这就导致了 Kotlin 的框架非常灵活 , 使用别人的 SDK 时会发现 为各种现有定义的 扩展函数 ; 代码示例 : 在下面的代码中...---- 如果 扩展函数 使用 private 修饰 , 则该扩展函数 只在该 Kotlin 代码文件中有效 , 在其它的 Kotlin 代码中就无法调用了 ; 代码示例 : 在 Hello.kt 代码中

    1.6K20

    Android Studio Arctic Fox (2020.3.1) Beta 版发布

    无论您的应用是完全用 Compose 编写的布局,还是混合使用了 Compose 和 View,Layout Inspector 都能帮助您了解布局如何在设备或模拟器上呈现,获得丰富的细节 (如传递给每个...仅举几例: 针对启动屏幕的自定义声明、精细位置使用的近似位置权限、媒体格式,以及传感器高采样率权限。...非传递性 R 重构 - 在 Android Gradle 插件中使用非传递性 (non-transitive) R ,可以为具有多个模块的应用带来更快的构建速度。...图片 △ Background Task Inspector 用 Test Matrix 进行并行设备测试 - 桩测试现在可以在多个设备上并行,并通过专门的桩测试结果面板进行查看。...观看以下演讲视频了解最新功能,并获得有关如何使用 Android Studio 的技巧和心得: Android 开发工具更新一览 Android Kotlin 最新状态 设计工具更新一览 Android

    38320

    Kotlin | 10. 注解与反射

    本章内容包括: 应用和定义注解 在运行时使用反射对进行自省 一个真正的 Kotlin 项目实例 10.1 声明并应用注解 /**-------------------------...-------------------------*/ // @CustomSerializer 注解接收一个自定义序列化器的引用作为实参。...一个注解的参数可以是一个基本数据类型、一个字符串、一个枚举、一个引用、一个其他注解的实例,或者前面这些元素组成的数组。...如果单个 Kotlin 声明产生了多个字节码元素,像@get Rule 这样指定一个注解的使用点目标,允许你选择注解如何应用。...要获取一个 KClass 的实例,如果类是静态己知的,可以使用 ClassName::class :否则,使用 obj.javaClass kotlin 从对象实例上取得

    95310

    Kotlin中的数据类型

    基本数据类型 Kotlin 中的基本数据类型包括数字、字符、布尔字符串。 数字类型 Kotlin 提供了多种数字类型,用于表示整数和浮点数。每种类型都有其特定的内存大小和范围。...字符串可以包括特殊字符和表达式的。 示例代码: val stringValue: String = "Hello, Kotlin!"...在 Kotlin 中,数组是一个,提供了一些有用的方法。...字符串模板 字符串模板允许你在字符串中嵌入变量和表达式,使用 $ 符号进行引用。 val name = "Kotlin" val greeting = "Hello, $name!"...类型转换 需要显式调用转换函数,确保数据的安全和准确。 字符串操作 功能强大,支持模板表达式和多行字符串。 通过熟悉这些数据类型和操作,您可以在 Kotlin 中更高效地处理各种数据和任务。

    6910

    Kotlin入门教程——目录索引

    入门(4)声明与操作数组 Kotlin入门(5)字符串及其格式化 Kotlin入门(16)容器的遍历方式 第三章 控制语句 Kotlin入门(6)条件分支的实现 Kotlin入门(7)循环语句的操作...Kotlin入门(8)空的判断与处理 Kotlin入门(17)等式判断的情况 第四章    函数运用 Kotlin入门(9)函数的基本用法 Kotlin入门(10)七十二变的输入参数 Kotlin入门...(11)江湖绝技之特殊函数 Kotlin入门(18)利用单例对象获取时间 第五章    和对象 Kotlin入门(12)的概貌与构造 Kotlin入门(13)成员的众生相 Kotlin入门(14...活动页面的跳转处理 Kotlin入门(22)适配器的简单优化 Kotlin入门(23)适配器的进阶表达 Kotlin入门(24)如何自定义视图 第七章    数据存储 Kotlin入门(25)共享参数模板...入门(29)任务Runnable Kotlin入门(30)多线程交互 Kotlin入门(31)JSON字符串的解析 Kotlin入门(32)网络接口访问 Kotlin入门(33)运用扩展属性 本系列教程的所有源码均可到我的

    1.5K30

    【Android 字节码桩】Gradle插件基础 & Transform API的使用

    你不调用新的api或者改动旧的api,如何获取用户数据呢?...静态类型的 Java 或 Kotlin 实现的插件,实际测试java 或 kotlin实现的插件, 比 groovy 实现的性能更好一些,当然只要你喜欢, 可以使用任何你喜欢的语言来实现gradle插件...而不需要其他特殊的编码操作,当然功能也是有限 首先,创建新项目,然后我们可以在 项目的 app/build.gradle文件末尾添加~ 示例代码: class PHPluginExtension { // 为插件扩展定义一个字符串类型的变量.../panghu.gradle' android { ... } // 通过这种配置方式,修改自定义插件中配置的message的 PH2{ message = "更新你想要的文字" } buildSrc...同样,在 TransformManager 中定义了几种范围: // 注意,不同版本不一样 public static final Set EMPTY_SCOPES = ImmutableSet.of

    39210

    Spring认证中国教育管理中心-Spring Data MongoDB教程十五

    请参阅MongoDB 文档了解如何设置分片集群及其要求和限制。 Spring Data MongoDB 使用@Sharded注释来标识存储在分片集合中的实体,如下所示。...本综合教程将教您如何使用start.spring.io使用 Kotlin 构建 Spring Boot 应用程序。...这通过可空性声明和“或无”语义的表达使应用程序更安全,而无需支付包装器的成本,例如Optional. (Kotlin 允许使用具有可为空的函数式构造。请参阅Kotlin安全性综合指南。)...20.3.对象映射 有关Kotlin对象如何具体化的详细信息,请参阅Kotlin 支持。 20.4.扩展 Kotlin扩展提供了使用附加功能扩展现有的能力。...Spring Data Kotlin API 使用这些扩展为现有的 Spring API 添加新的 Kotlin 特定的便利。 请记住,需要导入 Kotlin 扩展才能使用

    2.3K30

    Spring中国教育管理中心-Apache Cassandra 的 Spring 数据教程十四

    使用classorenum为回调 bean 启用类型过滤。 在单个实现中组合多个实体回调接口。...本综合教程将教您如何使用start.spring.io使用 Kotlin 构建 Spring Boot 应用程序。...这通过可空性声明和“或无”语义的表达使应用程序更安全,而无需支付包装器的成本,例如Optional. (Kotlin 允许使用具有可为空的函数式构造。请参阅Kotlin安全性综合指南。)...15.3.对象映射 有关Kotlin对象如何具体化的详细信息,请参阅Kotlin 支持。 15.4.扩展 Kotlin扩展提供了使用附加功能扩展现有的能力。...Spring Data Kotlin API 使用这些扩展为现有的 Spring API 添加新的 Kotlin 特定的便利。 请记住,需要导入 Kotlin 扩展才能使用

    1.6K40

    转向Kotlin——枚举扩展

    基本用法 Kotlin中,枚举类型的形式存在,因此叫做枚举,如下是实例: enum class Color { RED, GREEN, BLUE } Kotlin中一切都是对象,因此,每一个枚举类型也是对象...先看下如何使用: var color: Color = Color.BLUE var color2 = Color.GREEN // 比较两个枚举类型变量 var bool: Boolean = color...扩展自定义 扩展的目的右很多,除了系统需要扩展外,我们自己编写的也需要扩展扩展自定义的方法和扩展系统相同: open class Parent(var value1: Int, var...扩展属性 扩展属性和扩展方法类似,Kotlin属性在中必须初始化,而初始化需要使用backing field,也就是那个field字段,可以将属性设置的保存在field中,也可以从field获得属性...但在中对另一个扩展却可以添加open关键字。 小结 尽管枚举并不是在代码中经常出现,但用来定义可枚举的一组相关还是非常好的,至少让代码变得更可读(远比使用常量或直接使用数字要好)。

    1.4K20

    第9章 文件IO操作、正则表达式与多线程第9章 文件IO操作、正则表达式与多线程

    第9章 文件IO操作、正则表达式与多线程 我们在《第6章 扩展函数与属性》中已经介绍过Kotlin中的扩展的特性。...使用Kotlin扩展函数功能,我们可以直接为 String 实现一个 inc() 函数,这个函数把字符串中的每一个字符加1 "abc".inc() // bcd 这个扩展函数实现如下 fun String.inc...9.1 文件 IO 操作 Kotlin IO 操作的 API 在 kotlin.io 包下。Kotlin的原则就是Java已经有好用的就直接使用,没有的或者不好用的,就在原有的基础上进行功能扩展。...例如Kotlin 就给 File 写了扩展函数。...9.5.1 创建线程 我们在 Java中通常有两种方法在Java中创建线程: 扩展Thread 或者实例化它并通过构造函数传递一个Runnable 因为我们可以很容易地在Kotlin使用Java

    1.9K30

    Android动画入门教程之kotlin

    前言 Google在今年的IO大会上宣布,将Android开发的官方语言更换为Kotlin,作为跟着Google玩儿Android的人,我们必须尽快了解和使用Kotlin语言。...说白了,之前的补间动画机制就是使用硬编码的方式来完成的,功能限定死就是这些,基本上没有任何扩展性可言。...核心 ValueAnimator:该类是Animator的子类,实现了动画的整个处理逻辑也是属性动画的核心 ObjectAnimator:对象属性动画的操作,继承自ValueAnimator,通过该类使用动画的形式操作对象的属性...TimeInterpolator:时间器,他的作用是根据时间流逝的百分比来计算出当前属性改变的百分比,系统预置的有线性器(LinearInterpolator)、加速器(AccelerateDeceleratenterpolator...)和减速器(DecelerateInterpolator)等。

    94510

    Spring Boot 与 Kotlin使用Freemarker模板引擎渲染web视图

    在《Spring Boot 与 Kotlin 使用Thymeleaf模板引擎渲染web视图》一文中,我们使用Thymeleaf模板引擎渲染web视图,体验了kotlin 与spring boot结合是相当好的...在模板中,主要用于如何展现数据, 而在模板之外注意于要展示什么数据 。 基本语法: ${...}...:FreeMarker将会输出真实的来替换大括号内的表达式,这样的表达式被称为interpolation()。 注释:注释和HTML的注释也很相似,但是它们使用来标识。...这些标签的名字#开头。(用户自定义的FTL标签则需要使用@来代替#) 模版实例 Welcome!...:$spring_boot_version") // Kotlin整合SpringBoot的默认无参构造函数,默认把所有的设置open插件 classpath("org.jetbrains.kotlin

    1.1K20

    扫码

    添加站长 进交流群

    领取专属 10元无门槛券

    手把手带您无忧上云

    扫码加入开发者社群

    相关资讯

    热门标签

    活动推荐

      运营活动

      活动名称
      广告关闭
      领券