自定义博客皮肤VIP专享

*博客头图:

格式为PNG、JPG,宽度*高度大于1920*100像素,不超过2MB,主视觉建议放在右侧,请参照线上博客头图

请上传大于1920*100像素的图片!

博客底图:

图片格式为PNG、JPG,不超过1MB,可上下左右平铺至整个背景

栏目图:

图片格式为PNG、JPG,图片宽度*高度为300*38像素,不超过0.5MB

主标题颜色:

RGB颜色,例如:#AFAFAF

Hover:

RGB颜色,例如:#AFAFAF

副标题颜色:

RGB颜色,例如:#AFAFAF

自定义博客皮肤

-+
  • 博客(19)
  • 收藏
  • 关注

原创 Kotlin基础10

除了重写Any类的部分函数,提供更好用的默认实现外,数据类还提供了一个函数,它可以用来方便地复制一个对象。有时候你不一定非要定义一个新的命名类不可,也许你需要某个现有类的一种变体实例,但只需用-次就行了,事实上,对于这种用完就丢的类实例,连命名都可以省了。如果你想将某个对象的初始化和一个类实例捆绑在一起,可以考虑使用伴生对象,使用companion修饰符,你可以在一个类定义里声明一个伴生对象,一个类里只能有一个伴生对象。使用object关键字,你可以定义一个只能产生一个实例的类-单例。

2024-04-05 19:32:48 376 1

原创 Kotlin基础9

这段代码编译没有问题,因为编译器看到name属性已经在init块里初始化了,但代码一运行,就会抛出空指针异常,因为name属性还没赋值,firstLetter函数就应用它。kotlin编译器很聪明,要能确定any is 父类条件检查属实,它就会将any当做子类类型对待,因此,编译器允许你不经类型转换直接使用。延迟初始化并不是推后初始化的唯一方式,你也可以暂时不初始化某个变量,直到首次使用它,这个叫作惰性初始化。在使用初始化块时,顺序非常重要,你必须保证块中的所有属性已完成初始化。

2024-04-01 09:40:23 212

原创 Kotlin基础8

针对你定义的每一个属性,btlin都会产生一个field、一个getter、以及一个setter,field用来存储属性数据,你不能直接定义field,Kotlin会封装field,保护它里面的数据,只暴露给getter和setter使用。属性的getter方法决定你如何读取属性值,每个属性都有getter方法,setter方法决定你如何给属性赋值,所以只有可变属性才会有setter方法,尽管Kotlin会自动提供默认的getter和setter方法,但在需要控制如何读写属性数据时,你也可以自定义他们。

2024-03-28 13:42:56 326 1

原创 Kotlin基础7

在Kotlin中,支持内容修改的列表叫可变列表,要创建可变列表,可以使用mutableListOf函数。通过setOf创建set集合,使用elementAt函数读取集合中的元素。getOrDefault,读取键对应的值,或者返回默认值。getOrElse,读取键对应的值,或者使用匿名函数返回默认值。[ ]取值运算符,读取键对应的值,如果键不存在就返回null。getValue,读取键对应的值,如果键不存在就抛出异常。能修改可变列表的函数有个统一的名字:mutator函数。

2024-03-28 09:03:25 318 1

原创 Kotlin基础6

getOrElse是一个安全索引取值函数,它需要两个参数,第一个是索引值,第二个是能提供默认值的lambda表达式,如果索引值不存在的话,可用来代替异常getOrNull是Kotlin提供的另一个安全索引取值函数,它返回null结果,而不是抛出异常。可以看到,调用一个个函数类配置接收者时,这是因为,在lambda表达式里,apply能让每个配函数都作用于接收者,这种行为有时又叫做相关作用域,因为lambda表达式里的所有函数调用都是针对接收者的,或者说,它们是针对接收者的隐式调用。

2024-03-26 13:34:32 278

原创 Kotlin基础5

在Kotlin中,用==检查两个字符串中的字符是否匹配,用===检查两个变量是否指向内存堆上同一对象,而在Java中==做引用比较,做结构比较时用equals方法。字符串截取,substring函数支持IntRange类型(表示一个整数范围的类型)的参数,until创建的范围不包括上限值。我们也可以使用if判断,但是相比之下安全调用操作符用起来更灵活,代码也更简洁, 我们可以用安全操作符进行多个函数的链式调用。和Java一样,Kotlin中所有数字类型都是有符号的,也就是说既可以表示正数,也可以表示负数。

2024-03-25 13:45:10 348 1

原创 Kotlin基础4

幸运的是,kotlin有一种优化机制叫内联,有了内联,JVM就不需要使用lambda对象实例了,因而避免了变量内存分配。为什么要在代码中使用函数类型?要把函数作为参数传给其他函数使用,除了传lambda表达式,kotlin还提供了其他方法,传递函数引用,函数引用可以把一个具名函数转换成一个值参,使用lambda表达式的地方,都可以使用函数引用。在Kotlin中,匿名函数能修改并引用定义在自己的作用域之外的变量,匿名函数引用着定义自身的函数里的变量,Kotlin中的lambda就是闭包。安全调用操作符:(?

2024-03-24 19:10:08 320 1

原创 Kotlin基础3

我们将匿名函数称为lambda,将它的定义称为lambda表达式,它返回的数据称为lambda结果lambda也可以用希腊字符入表示,是lambda演算的简称,lambda演算是一套数理演算逻辑,在定义匿名函数时,使用了lambda演算记法。和具名函数不一样,除了极少数情况外,匿名函数不需要return关键字来返回数据,匿名函数会隐式或自动返回函数体最后一行语句的结果。变量有类型,变量可以等于函数,函数也会有类型。和具名函数一样,匿名函数可以不带参数,也可以带一个或多个任何类型的参数,需要带参数时,

2024-03-22 14:00:36 166 1

原创 Kotlin基础2

kotlin只提供引用数据类型这一种数据类型,出于更高性能的需要,kotlin编译器会在Java字节码中改用基本数据类型。来看最终编译成的字节码帮助我们学习kotlin。Kotlin中没有返回值的函数(Kotlin中默认的fun方法就是Unit类型)when表达式(只要代码复合if /else if,都建议改用when表达式)range表达式:用in关键字表达(是否在一个范围内)(TODO抛异常返回Noting类型)没有返回值类型。默认值参:如果不打算传参,可以指定一个默认值。

2024-03-21 14:40:38 219 1

原创 Kotlin基础1

只读变量并非绝对只读编译时常量只能在函数之外定义,函数内的变量是运行时赋值,编译时常量在变量赋值前就存在。2011年,JetBrains开发Kotlin编程语言,可以用来编写Java虚拟机上运行代码;变量定义关键字 | 变量名 | 类型定义 | 赋值运算符 | 赋值。Kotlin具备高级语言特性,并且与Java遗留代码无缝互操作。Kotlin是跨平台语言、是原生二进制代码(源码)掌握Kotiln的变量常量与类型、条件语句、函数。1、与Java对比,提高学习效率(对比法)Kotlin被称为编译型语言。

2024-03-20 21:06:00 239 1

原创 MVVM-Day9(直播)

调用适配器完成礼物页面;

2024-01-17 20:39:53 420

原创 MVVM-Day8(收藏分享)

创建DBUtiles类。

2024-01-16 19:41:49 433 2

原创 MVVM-Day7

【代码】MVVM-Day7。

2024-01-15 20:15:03 454 1

原创 MVVM-Day6(视频)

page>14,size=10视频部分可播放。

2024-01-12 20:02:56 422 1

原创 MVVM-Day5

implementation 'com.youth.banner:banner:1.4.10'//轮播图。

2024-01-11 20:15:31 370 1

原创 MVVM-Day4

implementation ('com.alibaba:arouter-api:1.5.2') //ARouter依赖 //版本要改成最新版本。annotationProcessor 'com.alibaba:arouter-compiler:1.5.2' //ARouter依赖。Home为第一页面、Friend为第二页面、Message为第三页面、Mine为第四页面。LoginActivity中跳转方法(同intent跳转)商品、关注、推荐页面。

2024-01-10 18:50:49 401

原创 MVVM-Day3

同Day2创建FoodEntity、Api接口、RetrifitManager管理类。在Model创建BaseModel。最后写View层Activity。

2024-01-09 18:35:49 423

原创 MVVM-Day2

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依赖。

2024-01-08 19:51:32 453

原创 MVVM-day1(视图绑定/数据绑定)

通过视图绑定功能,您可以更轻松地编写可与视图交互的代码。在模块中启用视图绑定之后,系统会为该模块中的每个 XML 布局文件生成一个绑定类。绑定类的实例包含对在相应布局中具有 ID 的所有视图的直接引用。数据绑定库是一种支持库,借助该库,您可以使用声明性格式(而非程序化地)将布局中的界面组件绑定到应用中的数据源。布局通常是使用调用界面框架方法的代码在 Activity 中定义的。如果您希望在生成绑定类时忽略某个布局文件,请将。属性添加到相应布局文件的根视图中。//Fragment管理器。

2024-01-07 18:47:11 399 2

空空如也

空空如也

TA创建的收藏夹 TA关注的收藏夹

TA关注的人

提示
确定要删除当前文章?
取消 删除