kotlin

What is difference between “as” and “is” operator in Kotlin?

余生长醉 提交于 2020-08-19 03:15:12
问题 In Java, I can write code like: void cast(A a) { if(a instanceof Person) { Person p = (Person) a; } } In Kotlin, what should I do? Use as operator or is operator? 回答1: is X is the equivalent of instanceof X foo as X is the equivalent of ((X) foo) Additionally, Kotlin performs smart casting where possible, so no additional cast needed after you check the type using is : open class Person : A() { val foo: Int = 42 } open class A and then: if (p is Person) { println(p.foo) // look, no cast

What is difference between “as” and “is” operator in Kotlin?

此生再无相见时 提交于 2020-08-19 03:12:04
问题 In Java, I can write code like: void cast(A a) { if(a instanceof Person) { Person p = (Person) a; } } In Kotlin, what should I do? Use as operator or is operator? 回答1: is X is the equivalent of instanceof X foo as X is the equivalent of ((X) foo) Additionally, Kotlin performs smart casting where possible, so no additional cast needed after you check the type using is : open class Person : A() { val foo: Int = 42 } open class A and then: if (p is Person) { println(p.foo) // look, no cast

2246页腾讯T-3Android学习笔记在互联网上火了,点击量破百万,现在完整版开放下载!

夙愿已清 提交于 2020-08-18 21:07:52
前言 怀揣着对大厂的梦想,程序员小王本想在工作两至三年的时间内能进入大厂,奈何竞争是如此激烈。而且进入大厂并不容易,曾经一度被腾讯、京东、美团等大厂刷下来,甚至有些公司连面试机会都没给。今年恰好趁着疫情那段时间的空档期,程序员小王下定决心,向腾讯发起“总攻”。 在这次面试腾讯之前,程序员小王在去年年底到今年6月份这段时间不断的查缺补漏,把大部分时间都花在了学习技术上面,去看腾讯招聘网站上的岗位需求是什么,基础不好就狂刷四大组件、布局使用、多线程 & 动画, 计算机基础 不够深就扎进去学...... 后面终于在三次腾讯内部开发岗位面试之后,敲定了岗位, 定级T3-2 介绍 笔记作者: 来自于腾讯T-3级架构师: jett 笔记特点: 条理清晰,知识点系统化模块化,见解详细全文有2246页,含图像化表示更加易懂。 内容概要: Android 相关,性能优化,Java 相关,Kotlin 相关,网络相关,插件化&热修复&模块化&组件化 &增量更新&Gradle,图片相关,Flutter 相关,一线互联网面试真题解析等技术栈! 由于整个文档比较全面,内容比较多,篇幅不允许,下面以截图方式展示 。 如有需要获取资料文档的朋友 可以关注我的【 GitHub 】免费获取 。 Android 相关 1. Android 之 SharedPreferences 内部原理浅析 2. Android

Google 再见 Java

大兔子大兔子 提交于 2020-08-18 20:58:32
去年 5 月份的 Google I/O 上,谷歌宣布 Kotlin-first,Kotlin 开始成为 Android 开发者的首选语言,接着谷歌针对 Kotlin 的相关建设不断。 本文简介 Java 迁移到 Kotlin 指南相关 就在今年,上周,谷歌刚刚推出免费的 Kotlin 和 Android 在线课程,教开发者使用 Kotlin 构建 Android 应用。很快,Google Home 团队也现身说法,通过自身经历,展示了 Kotlin 开发的好处。 开始从 Java 迁移到 Kotlin 谷歌建议“由点及面”进行迁移,包括人与代码两个层面: 人的层面,团队内部推举出一位 Kotlin “推广大使”,他需要做到: 了解 Kotlin 并成为专家 制定 Kotlin 开发流程 参与代码审核,确保 Kotlin 开发流程得到顺利贯彻 组建公司/团队内部的学习小组 主动收集内部的问题并与开发者社区反馈探讨 而代码层面,需要做到: 先使用 Kotlin 编写测试(此时项目依然在使用 Java) 使用 Kotlin 编写新代码 将现有代码更新为 Kotlin 代码 在将现有代码更新为 Kotlin 代码时,可以直接使用 Android Studio 提供的 Java 转 Kotlin 工具,只需要在菜单中选择 “Code → Convert Java File to Kotlin

如何使用华为机器学习服务和Kotlin实现语音合成

点点圈 提交于 2020-08-18 14:31:50
1. 引言   你曾遇到过这种情况吗?一本小说太长,要花很长时间阅读,但如果有app能自动为你阅读,就会省时很多。因此,将文本转换成语音的工具应运而生。华为机器学习服务(HUAWEI ML Kit)具备语音合成(Text To Speech, TTS)功能,能让app快速实现从文本到语音的转换。TTS可以将文本转换成人声。这也可以通过默认方法实现,但这些方法不能提供自然或真实的声音。TTS服务全球通用,利用深度神经网络对文本进行处理,从而创造出自然的声音,同时也支持多种音色,以增强人声效果。TTS使用了云服务,字符数限制在500个以内,并使用UTF-8编码。   目前支持的音色如下: 英文-男声 英文-女声 中文-男声 中文-女声 英文+中文-男声 英文+中文-女声 2. 结果展示   视频展示了使用该服务后得到的结果。   视频链接: https://developer.huawei.com/consumer/cn/forum/topicview?fid=18&tid=0201314285827100291 3.集成步骤    步骤1: 在Android Studio中新建项目。    步骤2: 在app.gradle文件中添加依赖。   implementation 'com.huawei.hms:ml-computer-voice-tts:1.0.4.300'    步骤3:

Google 也要放弃 C/C++?Chrome 代码库中 70% 的安全漏洞是内存问题

六眼飞鱼酱① 提交于 2020-08-18 08:27:52
Google 工程师表示:目前 Chrome 代码库中所有严重的安全漏洞,70% 是内存管理的安全漏洞,其中 50% 的内存漏洞是 use-after-free 漏洞,因为对内存指针的错误管理,给予了攻击者攻击 Chrome 内部组件的机会。 近日,Google 工程师统计了 2015 年以来,Chrome 稳定分支中修复级别为 “high” 或 “critical” 的 912 个安全错误,结果发现约 70% 是内存安全漏洞。 事实上,不只是 Google,内存安全漏洞是很多科技公司都头疼的问题,微软工程师也曾公开表示:在过去 12 年中,微软产品的安全更新中,约有 70% 也是在解决内存安全漏洞。 为什么微软和 Google 的情况如此相似呢?因为它们代码库中使用的主要编程语言是 C 和 C++,由于 C 和 C++ 出现的时间较早,当时网络攻击还不是利用相关的威胁模型,大多数早期软件开发人员也没有考虑到相关的安全问题,所以 C 和 C++ 允许程序员完全控制管理应用程序的内存指针,出现基本的内存管理错误时,也没有相关的提示或者警告。 Chrome 的内存安全问题如何解决? 据了解,自 2019 年 3 月以来,在 130 个级别为 critical 的 Chrome 漏洞中,有 125 个是与内存相关的。这个数据也表明了,内存管理错误仍然是 Google 的一个大问题。

Kotlin: 大有用途的拓展函数

荒凉一梦 提交于 2020-08-18 05:46:23
先看一下拓展函数的语法结构,如下: fun ClassName . methodName ( param1 : Int , param2 : Int ) : Int { return 0 } 相比于定义一个普通函数, 定义拓展函数只需要在函数名的前面加上一个 ClassName. 的语法结构,就表示将该函数添加到指定类当中了 . 我们再回过头看一下什么是拓展函数? 拓展函数表示即使在不修改某个类的源码的情况下,仍然可以打开这个类,向该类添加新的函数. 来源: oschina 链接: https://my.oschina.net/u/4287715/blog/4476811

How to convert/transform a collection to another collection by element's property?

心不动则不痛 提交于 2020-08-17 23:51:23
问题 If I have a collection of an object in Kotlin, is there a quick way to get a collection of a certain property of those objects? I looked at a list of collection operations for Kotlin, but nothing stood out for me (but I may have overlooked something) In python it would be akin to: [person.name for person in persons] And I'd prefer to use a collections function instead of doing: var nameMap = mutableListOf<String>() persons.forEach{person -> nameMap.add(person.name)} I'm pretty lacking in

How to convert/transform a collection to another collection by element's property?

江枫思渺然 提交于 2020-08-17 23:48:07
问题 If I have a collection of an object in Kotlin, is there a quick way to get a collection of a certain property of those objects? I looked at a list of collection operations for Kotlin, but nothing stood out for me (but I may have overlooked something) In python it would be akin to: [person.name for person in persons] And I'd prefer to use a collections function instead of doing: var nameMap = mutableListOf<String>() persons.forEach{person -> nameMap.add(person.name)} I'm pretty lacking in

spring源码调试准备工作

若如初见. 提交于 2020-08-17 18:40:01
Spring源码下载 1、git clone--branchv5.1.3.RELEASE https://gitee.com/Z201/spring-framework.git 2、gradle 下载,gradle 要 JDK8 的版本 3、到下载的 spring 源码路径执行 gradle 命令, gradlew:spring-oxm:compileTestJava 4、用 idea 打开 spring 源码工程,在 idea 中安装插件 kotlin,重启 idea 5、把编译好的源码导入到工程中 最后我们需要在我们自己的项目中调试源码引入spring源码对应的依赖,并且将源码打成jar包: 双击对应工程的jar就可以断点调试了 来源: oschina 链接: https://my.oschina.net/u/3995125/blog/4310406