<?xml version="1.0" encoding="utf-8" ?><rss version="2.0"><channel><title><![CDATA[LD_Round的博客]]></title><description><![CDATA[]]></description><link>https://blog.youkuaiyun.com/LD_Round</link><language>zh-cn</language><generator>https://blog.youkuaiyun.com/</generator><copyright><![CDATA[Copyright &copy; LD_Round]]></copyright><item><title><![CDATA[Kotlin基础10]]></title><link>https://blog.youkuaiyun.com/LD_Round/article/details/137406419</link><guid>https://blog.youkuaiyun.com/LD_Round/article/details/137406419</guid><author>LD_Round</author><pubDate>Fri, 05 Apr 2024 19:32:48 +0800</pubDate><description><![CDATA[除了重写Any类的部分函数，提供更好用的默认实现外，数据类还提供了一个函数，它可以用来方便地复制一个对象。有时候你不一定非要定义一个新的命名类不可，也许你需要某个现有类的一种变体实例，但只需用-次就行了，事实上，对于这种用完就丢的类实例，连命名都可以省了。如果你想将某个对象的初始化和一个类实例捆绑在一起，可以考虑使用伴生对象，使用companion修饰符，你可以在一个类定义里声明一个伴生对象，一个类里只能有一个伴生对象。使用object关键字，你可以定义一个只能产生一个实例的类-单例。]]></description><category></category></item><item><title><![CDATA[Kotlin基础9]]></title><link>https://blog.youkuaiyun.com/LD_Round/article/details/137218058</link><guid>https://blog.youkuaiyun.com/LD_Round/article/details/137218058</guid><author>LD_Round</author><pubDate>Mon, 01 Apr 2024 09:40:23 +0800</pubDate><description><![CDATA[这段代码编译没有问题，因为编译器看到name属性已经在init块里初始化了，但代码一运行，就会抛出空指针异常，因为name属性还没赋值，firstLetter函数就应用它。kotlin编译器很聪明，要能确定any is 父类条件检查属实，它就会将any当做子类类型对待，因此，编译器允许你不经类型转换直接使用。延迟初始化并不是推后初始化的唯一方式，你也可以暂时不初始化某个变量，直到首次使用它，这个叫作惰性初始化。在使用初始化块时，顺序非常重要，你必须保证块中的所有属性已完成初始化。]]></description><category></category></item><item><title><![CDATA[Kotlin基础8]]></title><link>https://blog.youkuaiyun.com/LD_Round/article/details/137098112</link><guid>https://blog.youkuaiyun.com/LD_Round/article/details/137098112</guid><author>LD_Round</author><pubDate>Thu, 28 Mar 2024 13:42:56 +0800</pubDate><description><![CDATA[针对你定义的每一个属性，btlin都会产生一个field、一个getter、以及一个setter，field用来存储属性数据，你不能直接定义field，Kotlin会封装field，保护它里面的数据，只暴露给getter和setter使用。属性的getter方法决定你如何读取属性值，每个属性都有getter方法，setter方法决定你如何给属性赋值，所以只有可变属性才会有setter方法，尽管Kotlin会自动提供默认的getter和setter方法，但在需要控制如何读写属性数据时，你也可以自定义他们。]]></description><category></category></item><item><title><![CDATA[Kotlin基础7]]></title><link>https://blog.youkuaiyun.com/LD_Round/article/details/137096957</link><guid>https://blog.youkuaiyun.com/LD_Round/article/details/137096957</guid><author>LD_Round</author><pubDate>Thu, 28 Mar 2024 09:03:25 +0800</pubDate><description><![CDATA[在Kotlin中，支持内容修改的列表叫可变列表，要创建可变列表，可以使用mutableListOf函数。通过setOf创建set集合，使用elementAt函数读取集合中的元素。getOrDefault，读取键对应的值，或者返回默认值。getOrElse，读取键对应的值，或者使用匿名函数返回默认值。[ ]取值运算符，读取键对应的值，如果键不存在就返回null。getValue，读取键对应的值，如果键不存在就抛出异常。能修改可变列表的函数有个统一的名字:mutator函数。]]></description><category></category></item><item><title><![CDATA[Kotlin基础6]]></title><link>https://blog.youkuaiyun.com/LD_Round/article/details/137033196</link><guid>https://blog.youkuaiyun.com/LD_Round/article/details/137033196</guid><author>LD_Round</author><pubDate>Tue, 26 Mar 2024 13:34:32 +0800</pubDate><description><![CDATA[getOrElse是一个安全索引取值函数，它需要两个参数，第一个是索引值，第二个是能提供默认值的lambda表达式，如果索引值不存在的话，可用来代替异常getOrNull是Kotlin提供的另一个安全索引取值函数，它返回null结果，而不是抛出异常。可以看到，调用一个个函数类配置接收者时，这是因为，在lambda表达式里，apply能让每个配函数都作用于接收者，这种行为有时又叫做相关作用域，因为lambda表达式里的所有函数调用都是针对接收者的，或者说，它们是针对接收者的隐式调用。]]></description><category></category></item><item><title><![CDATA[Kotlin基础5]]></title><link>https://blog.youkuaiyun.com/LD_Round/article/details/137002018</link><guid>https://blog.youkuaiyun.com/LD_Round/article/details/137002018</guid><author>LD_Round</author><pubDate>Mon, 25 Mar 2024 13:45:10 +0800</pubDate><description><![CDATA[在Kotlin中，用==检查两个字符串中的字符是否匹配，用===检查两个变量是否指向内存堆上同一对象，而在Java中==做引用比较，做结构比较时用equals方法。字符串截取，substring函数支持IntRange类型(表示一个整数范围的类型)的参数，until创建的范围不包括上限值。我们也可以使用if判断，但是相比之下安全调用操作符用起来更灵活，代码也更简洁， 我们可以用安全操作符进行多个函数的链式调用。和Java一样，Kotlin中所有数字类型都是有符号的，也就是说既可以表示正数，也可以表示负数。]]></description><category></category></item><item><title><![CDATA[Kotlin基础4]]></title><link>https://blog.youkuaiyun.com/LD_Round/article/details/136992444</link><guid>https://blog.youkuaiyun.com/LD_Round/article/details/136992444</guid><author>LD_Round</author><pubDate>Sun, 24 Mar 2024 19:10:08 +0800</pubDate><description><![CDATA[幸运的是，kotlin有一种优化机制叫内联，有了内联，JVM就不需要使用lambda对象实例了，因而避免了变量内存分配。为什么要在代码中使用函数类型?要把函数作为参数传给其他函数使用，除了传lambda表达式，kotlin还提供了其他方法，传递函数引用，函数引用可以把一个具名函数转换成一个值参，使用lambda表达式的地方，都可以使用函数引用。在Kotlin中，匿名函数能修改并引用定义在自己的作用域之外的变量，匿名函数引用着定义自身的函数里的变量，Kotlin中的lambda就是闭包。安全调用操作符：（?]]></description><category></category></item><item><title><![CDATA[Kotlin基础3]]></title><link>https://blog.youkuaiyun.com/LD_Round/article/details/136938025</link><guid>https://blog.youkuaiyun.com/LD_Round/article/details/136938025</guid><author>LD_Round</author><pubDate>Fri, 22 Mar 2024 14:00:36 +0800</pubDate><description><![CDATA[我们将匿名函数称为lambda,将它的定义称为lambda表达式，它返回的数据称为lambda结果lambda也可以用希腊字符入表示，是lambda演算的简称，lambda演算是一套数理演算逻辑，在定义匿名函数时，使用了lambda演算记法。和具名函数不一样，除了极少数情况外，匿名函数不需要return关键字来返回数据，匿名函数会隐式或自动返回函数体最后一行语句的结果。变量有类型，变量可以等于函数，函数也会有类型。和具名函数一样，匿名函数可以不带参数，也可以带一个或多个任何类型的参数，需要带参数时，]]></description><category></category></item><item><title><![CDATA[Kotlin基础2]]></title><link>https://blog.youkuaiyun.com/LD_Round/article/details/136886800</link><guid>https://blog.youkuaiyun.com/LD_Round/article/details/136886800</guid><author>LD_Round</author><pubDate>Thu, 21 Mar 2024 14:40:38 +0800</pubDate><description><![CDATA[kotlin只提供引用数据类型这一种数据类型，出于更高性能的需要，kotlin编译器会在Java字节码中改用基本数据类型。来看最终编译成的字节码帮助我们学习kotlin。Kotlin中没有返回值的函数(Kotlin中默认的fun方法就是Unit类型)when表达式（只要代码复合if /else if，都建议改用when表达式）range表达式:用in关键字表达(是否在一个范围内)(TODO抛异常返回Noting类型)没有返回值类型。默认值参：如果不打算传参，可以指定一个默认值。]]></description><category></category></item><item><title><![CDATA[Kotlin基础1]]></title><link>https://blog.youkuaiyun.com/LD_Round/article/details/136888762</link><guid>https://blog.youkuaiyun.com/LD_Round/article/details/136888762</guid><author>LD_Round</author><pubDate>Wed, 20 Mar 2024 21:06:00 +0800</pubDate><description><![CDATA[只读变量并非绝对只读编译时常量只能在函数之外定义，函数内的变量是运行时赋值，编译时常量在变量赋值前就存在。2011年，JetBrains开发Kotlin编程语言,可以用来编写Java虚拟机上运行代码；变量定义关键字 | 变量名 | 类型定义 | 赋值运算符 | 赋值。Kotlin具备高级语言特性，并且与Java遗留代码无缝互操作。Kotlin是跨平台语言、是原生二进制代码（源码）掌握Kotiln的变量常量与类型、条件语句、函数。1、与Java对比，提高学习效率（对比法）Kotlin被称为编译型语言。]]></description><category></category></item><item><title><![CDATA[MVVM-Day9(直播)]]></title><link>https://blog.youkuaiyun.com/LD_Round/article/details/135659460</link><guid>https://blog.youkuaiyun.com/LD_Round/article/details/135659460</guid><author>LD_Round</author><pubDate>Wed, 17 Jan 2024 20:39:53 +0800</pubDate><description><![CDATA[调用适配器完成礼物页面;]]></description><category></category></item><item><title><![CDATA[MVVM-Day8(收藏分享)]]></title><link>https://blog.youkuaiyun.com/LD_Round/article/details/135632935</link><guid>https://blog.youkuaiyun.com/LD_Round/article/details/135632935</guid><author>LD_Round</author><pubDate>Tue, 16 Jan 2024 19:41:49 +0800</pubDate><description><![CDATA[创建DBUtiles类。]]></description><category></category></item><item><title><![CDATA[MVVM-Day7]]></title><link>https://blog.youkuaiyun.com/LD_Round/article/details/135597308</link><guid>https://blog.youkuaiyun.com/LD_Round/article/details/135597308</guid><author>LD_Round</author><pubDate>Mon, 15 Jan 2024 20:15:03 +0800</pubDate><description><![CDATA[【代码】MVVM-Day7。]]></description><category></category></item><item><title><![CDATA[MVVM-Day6(视频)]]></title><link>https://blog.youkuaiyun.com/LD_Round/article/details/135560353</link><guid>https://blog.youkuaiyun.com/LD_Round/article/details/135560353</guid><author>LD_Round</author><pubDate>Fri, 12 Jan 2024 20:02:56 +0800</pubDate><description><![CDATA[page>14,size=10视频部分可播放。]]></description><category></category></item><item><title><![CDATA[MVVM-Day5]]></title><link>https://blog.youkuaiyun.com/LD_Round/article/details/135537797</link><guid>https://blog.youkuaiyun.com/LD_Round/article/details/135537797</guid><author>LD_Round</author><pubDate>Thu, 11 Jan 2024 20:15:31 +0800</pubDate><description><![CDATA[implementation 'com.youth.banner:banner:1.4.10'//轮播图。]]></description><category></category></item><item><title><![CDATA[MVVM-Day4]]></title><link>https://blog.youkuaiyun.com/LD_Round/article/details/135497937</link><guid>https://blog.youkuaiyun.com/LD_Round/article/details/135497937</guid><author>LD_Round</author><pubDate>Wed, 10 Jan 2024 18:50:49 +0800</pubDate><description><![CDATA[implementation ('com.alibaba:arouter-api:1.5.2') //ARouter依赖   //版本要改成最新版本。annotationProcessor 'com.alibaba:arouter-compiler:1.5.2' //ARouter依赖。Home为第一页面、Friend为第二页面、Message为第三页面、Mine为第四页面。LoginActivity中跳转方法（同intent跳转）商品、关注、推荐页面。]]></description><category></category></item><item><title><![CDATA[MVVM-Day3]]></title><link>https://blog.youkuaiyun.com/LD_Round/article/details/135473003</link><guid>https://blog.youkuaiyun.com/LD_Round/article/details/135473003</guid><author>LD_Round</author><pubDate>Tue, 09 Jan 2024 18:35:49 +0800</pubDate><description><![CDATA[同Day2创建FoodEntity、Api接口、RetrifitManager管理类。在Model创建BaseModel。最后写View层Activity。]]></description><category></category></item><item><title><![CDATA[MVVM-Day2]]></title><link>https://blog.youkuaiyun.com/LD_Round/article/details/135453442</link><guid>https://blog.youkuaiyun.com/LD_Round/article/details/135453442</guid><author>LD_Round</author><pubDate>Mon, 08 Jan 2024 19:51:32 +0800</pubDate><description><![CDATA[implementation 'com.github.CymChad:BaseRecyclerViewAdapterHelper:3.0.0'//万能适配器。implementation 'com.google.code.gson:gson:2.8.0'//gson依赖。//Gson converter gson解析。//RxJava依赖:主要用于消息传递。//rxlifecycle异步线程生命周期管理。3.创建RetrifitManager类。//Retrofit依赖。]]></description><category></category></item><item><title><![CDATA[MVVM-day1(视图绑定/数据绑定)]]></title><link>https://blog.youkuaiyun.com/LD_Round/article/details/135442870</link><guid>https://blog.youkuaiyun.com/LD_Round/article/details/135442870</guid><author>LD_Round</author><pubDate>Sun, 07 Jan 2024 18:47:11 +0800</pubDate><description><![CDATA[通过视图绑定功能，您可以更轻松地编写可与视图交互的代码。在模块中启用视图绑定之后，系统会为该模块中的每个 XML 布局文件生成一个绑定类。绑定类的实例包含对在相应布局中具有 ID 的所有视图的直接引用。数据绑定库是一种支持库，借助该库，您可以使用声明性格式（而非程序化地）将布局中的界面组件绑定到应用中的数据源。布局通常是使用调用界面框架方法的代码在 Activity 中定义的。如果您希望在生成绑定类时忽略某个布局文件，请将。属性添加到相应布局文件的根视图中。//Fragment管理器。]]></description><category></category></item></channel></rss>