- 博客(128)
- 收藏
- 关注
原创 Python 函数式编程
Python 使用 lambda 来创建匿名函数。lambda 函数是一种小型、匿名的、内联函数,它可以具有任意数量的参数,但只能有一个表达式。匿名函数不需要使用 def 关键字定义完整函数。lambda 函数通常用于编写简单的、单行的函数,通常在需要函数作为参数传递的情况下使用,例如在 map()、filter()、reduce() 等函数中。
2024-09-10 22:00:34 432
原创 Python 装饰器
装饰器(decorators)是 Python 中的一种高级功能,它允许你动态地修改函数或类的行为。装饰器是一种函数,它接受一个函数作为参数,并返回一个新的函数或修改原来的函数。说白了装饰去本质上是一个 Python 函数(其实就是闭包),它可以让其他函数在不需要做任何代码变动的前提下增加额外功能,装饰器的返回值也是一个函数对象。装饰器的语法使用来应用在函数或方法上。Python 还提供了一些内置的装饰器,比如和,用于定义静态方法和类方法。
2024-08-06 20:51:14 382
原创 Python 函数
函数代码块以def关键词开头,后接函数标识符名称和圆括号()。任何传入参数和自变量必须放在圆括号中间,圆括号之间可以用于定义参数。函数的第一行语句可以选择性地使用文档字符串—用于存放函数说明。函数内容以冒号 : 起始,并且缩进。return [表达式]结束函数,选择性地返回一个值给调用方,不带表达式的 return 相当于返回 None。在return关键字下边写的所有的代码将不会被运行")hello()def 函数的名字(参数):函数体print("函数被调用"+a)
2024-06-09 02:21:33 737 2
原创 Jetpack Compose基础组件 - Image
目前在Compose中Image有三种,详情可先在中找到Image可以帮我们加载一张图片。
2023-09-19 16:04:59 369
原创 Jetpack Compose 介绍和快速上手
是围绕着Composable函数建立的。要创建一个Composable函数,只需在函数名称中添加注解。Composable函数只能从其他Composable函数的范围内调用。为了更好的理解,定义一个函数,它包含了一个name参数,并使用这个参数来配置文本元素) {!!// Composable 函数一般用大写开头,为了和普通的函数作为区分可以让你在IDE中预览你的Composable函数,而不需要部署到设备上。但是有个限制, 需要预览的Composable函数必须不能有任何参数。
2023-09-13 19:42:20 750
原创 Android Fragment
在Fragment定义一个接口,接口中定义抽象方法,你要传什么类型的数据参数就设置为什么类型;接着还有写一个调用接口中的抽象方法,把要传递的数据传过去再接着就是Activity了,调用Fragment提供的那个方法,然后重写抽象方法的时候进行数据 的读取就可以了!
2023-09-13 15:58:39 388
原创 Java 面向对象编程
类(Class)和对象(Object)是面向对象的核心概念。类: 具有相同特征的事物的抽象描述,是抽象的、概念上的定义。对象: 实际存在的该类事物的每个个体,是具体的,因而也称为实例可以理解为:类 => 抽象概念的人;对象 => 实实在在的某个人面向对象程序设计的重点是类的设计 类的设计,其实就是类的成员的设计现实世界的生物体,大到鲸鱼,小到蚂蚁,都是由最基本的细胞构成的。同理,Java 代码 世界是由诸多个不同功能的类构成的。现实生物世界中的细胞又是由什么构成的呢?细胞核、细胞质、...
2023-07-13 18:49:53 385
原创 Java基础 流程控制语句
顺序结构就是程序从上到下逐行地执行。表达式语句都是顺序执行的。并且上一 行对某个变量的修改对下一行会产生影响。Java 中定义变量时采用合法的前向引用。如。
2023-05-30 19:53:08 1306
原创 Java基础 引用数据类型String(字符串)
String 不是基本数据类型,属于引用数据类型使用一对""来表示一个字符串,内部可以包含 0 个、1 个或多个字符。声明方式与基本数据类型类似。例如:String str = “好好学习”;
2023-05-24 20:47:52 848
原创 关于字符集
计算机中储存的信息都是用`二进制数`表示的,而我们在屏幕上看到的数字、英文、标点符号、汉字等字符是二进制数转换之后的结果。按照某种规则,将字符存储到计算机中,称为`编码`。反之,将存储在计算机中的二进制数按照某种规则解析显示出来,称为`解码`。
2023-05-24 19:04:12 667
原创 Java基础 变量与数据类型(类型转换)
一花一世界,如果把一个程序看做一个世界或一个社会的话,那么变量就是程 序世界的花花草草、万事万物。即,变量是程序中不可或缺的组成单位,最基 本的存储单元。
2023-05-24 16:44:51 859
原创 Java基础 关键字与标识符
定义:被 Java 语言赋予了特殊含义,用做专门用途的字符串(或单词)HelloWorld 案例 中,出现的关键字有 class、public 、 static 、 void 等,这些单词已经被 Java 定义好 了。特点:全部关键字都是小写字母。关键字比较多,不需要死记硬背,学到哪里记到哪里即可。1. 关键字一共 50 个,其中 const 和 goto 是保留字(reserved word)。2. true,false,null 不在其中,它们看起来像关键字,其实是字面 量,表示特殊的布尔值和空值。
2023-05-16 00:12:37 285
原创 Java基础 开发相关的介绍和准备(开发环境搭建)
JDK (Java Development Kit):是 Java 程序开发工具包,包含 JRE 和开发人员使用的工 具。JRE (Java Runtime Environment) :是 Java 程序的运行时环境,包含 JVM 和运行时所 需要的核心类库。如下是 Java 8.0 Platform:JDK = JRE + 开发工具集(例如 Javac 编译工具等)JRE = JVM + Java SE 标准类库。
2023-05-15 23:56:58 1125
原创 移动端架构师都需要具备怎样的技术栈和能力
反面案例, 微软在用Xamarin, 我们也要用, 阿里巴巴搞中台,我们也要搞,盲目的跟风会发现在项目推进的过程中,这些项目技术并不适合自己,进而,反复的修改技术选型,造成了效率上的降低和资源的浪费。脚踏实地—业务与技术的匹配与融合,需要技术选型的落地技术,为业务服务, 我们要分清业务的重点,还有技术的重点。技术管理的取舍, 在技术选型时,维护团队的稳定性,技术产品的稳定性等因素的重要性要远大于较低的迁移成本的重要性。业务理解: 首先是业务理解,架构是服务于业务的,脱离业务谈架构,就是纯粹的耍流氓。
2023-04-15 21:54:59 782
原创 Android SQLite 数据库存储
SQLite说明应用运行需要保存一系列有一定结构的数据,比如:公司员工信息存储的文件类型:.db数据保存的路径:/data/data/packageName/databases/xxx.db默认情况下其他应用不能访问,当前应用可以通过ContentProvider提供其他应用操作应用卸载时会删除此数据......
2022-05-25 19:25:00 1315
原创 Android 数据存储(SharedPreferences,手机内外部file)
SharedPreferences存储SharedPreferences存储说明sp存储专门用来存储一些单一的小数据key--value 存储数据的类型:boolean,float,int,long,String SharedPreferences存储的位置:/data/data/packageName/shared_prefs/xxx.xml 可以设置数据智能是当前应用读取,而别的应用不可以 应用卸载时会删除此数据相关API保存数据操作读取数据操作...
2022-04-20 18:27:05 4884
原创 Android 四大组件之Activity
理论概述Activity的理解Activity的定义Activity,字面翻译为活动,他是Android定义的四大应用组件之一,也是最重要的用的最多的。一个应用有多个界面,也就是包含多个ActivityActivity的作用用来提供一个能够让用户操作并与之交互的界面一个Activity相当于一个容器,用于存放各种控件的容器,也可以理解为是与用户交互的接口类比Activity与ServletIntent的理解Intent,直译为意图,也就是你想要做什
2021-12-28 11:30:16 2906
原创 Kotlin 扩展
Kotlin 能够扩展一个类的新功能而无需继承该类或者使用像装饰者这样的设计模式,并且对被扩展的类代码本身不会造成任何影响。扩展函数可以为已经存在的类添加新的方法,并且不会修改原来的类。例如,你可以为一个你不能修改的、来自第三方库中的类编写一个新的函数。 这个新增的函数就像那个原始类本来就有的函数一样,可以用普通的方法调用。 这种机制称为扩展函数。也有扩展属性, 允许你为一个已经存在的类添加新的属性。扩展是静态解析的扩展不能真正的修改他们所扩展的类。通过定义一个扩展,你并没有在一...
2021-11-23 20:23:52 2127
原创 Kotlin 类的接口
Kotlin 的接口可以既包含抽象方法的声明也包含实现。与抽象类不同的是,接口无法保存状态。它可以有属性但必须声明为抽象或提供访问器实现。定义接口使用关键字interface来定义接口interface MyInterface { fun bar() fun foo() { // 可选的方法体 }}实现接口一个类或者对象可以实现一个或多个接口。class Child : MyInterface { override fun..
2021-11-23 19:48:13 2336
原创 Kotlin 类的继承
在 Kotlin 中所有类都有一个共同的超类Any,这对于没有继承其他父类的超类型声明的类是默认超类:class Example // 从 Any 隐式继承Any有三个方法:equals()、hashCode()与toString()。因此,为所有 Kotlin 类都定义了这些方法。默认情况下,Kotlin 类是最终(final)的:它们不能被继承。 要使一个类可继承,请用open关键字标记它。open class Base // 该类开放继承如需继承某个类,父类需加(...
2021-11-16 14:43:16 2189
原创 Kotlin 控制流语句
If 表达式在 Kotlin 中,if是一个表达式,即它会返回一个值。 因此就不需要三元运算符(条件 ? 然后 : 否则),因为普通的if就能胜任这个角色。// 传统用法var max = a if (a < b) max = b// With else var max: Intif (a > b) { max = a} else { max = b} // 作为表达式val max = if (a > b) a else bif的...
2021-10-12 20:28:24 100
原创 Kotlin 基本语法
包的定义与导入包的声明应处于源文件顶部:package org.examplefun printMessage() { /*……*/ }class Message { /*……*/ }// ……源文件所有内容(无论是类还是函数)都包含在声明的包内。 所以上例中printMessage()的全名是org.example.printMessage, 而Message的全名是org.example.Message。如果没有指明包,该文件的内容属于无名字的默认包。默认导入...
2021-10-12 17:13:53 138
原创 Kotlin 序列
序列概述与使用环境除了集合之外,Kotlin 标准库还包含另一种容器类型——序列(Sequence<T>)。 序列提供与Iterable相同的函数,但实现另一种方法来进行多步骤集合处理。当Iterable的处理包含多个步骤时,它们会优先执行:每个处理步骤完成并返回其结果——中间集合。在此集合上执行以下步骤。反过来,序列的多步处理在可能的情况下会延迟执行:仅当请求整个处理链的结果时才进行实际计算。操作执行的顺序也不同:Sequence对每个元素逐个执行所有处理步骤。 反过...
2021-10-12 14:54:18 258
原创 Kotlin 的函数
函数的基本概念函数的基本用法函数的定义其中Unit等价于Java的void函数返回值为Unit,可省略。函数的参数列表如果是多个参数的话使用逗号分隔。方法 & 函数方法可以认为是函数的一种特殊类型,从形式上,有receiver的函数即为方法函数的引用匿名函数LambdaSAM转换高阶函数常见的高阶函数函数式编程...
2021-10-11 21:09:53 225
原创 Kotlin 集合框架
与Java对比,有什么不同对比Java,Kotlin只是增加了"不可变"集合框架的接口,没有另起炉灶,复用Java API的所有实现类型。提供了丰富易用的方法,例如forEach/map/flatMap。Scala也是一门JVM语言,Kotlin很多特性都参考了Scala。运算符级别的支持,简化集合框架的访问。Java中的类型 Kotlin中的只读类型 Kotlin中的可变类型 Iterator<T> Iterator<T> Mutable
2021-10-11 00:33:28 536
原创 Kotlin 区间
区间的创建通过..创建闭区间,包含起止值val intRange = 1..10 // [1,10]val charRange = 'a'..'z' // ['a','z']val longRange = 100L..10000L // [100L,10000L]val floatRange = 1f..10f // 不可数的区间,无法遍历val doubleRange = 2.0..10.0 // 不可数的区间,无法遍历println(intRange.joinToStr..
2021-10-09 17:36:51 314
原创 Kotlin 数组类型
Kotlin的数组和Java数组的区别数组在Kotlin中使用Array类来表示,Kotlin的数组Array类中定义了get、set函数以及size(相当于java数组的length)的属性数组的创建方式一般创建数组,直接使用arrayOf(),就可以创建一个数组val a = arrayOf(1, 2, 3)val b = IntArray(3, { it + 1 })val c = arrayOf("shenzhen", "guagnzhou")c[1] = "beij.
2021-10-09 16:34:11 1393
原创 Kotlin基本数据类型
Kotlin五个基本数据类型Kotlin声明变量和常量Kotlin中使用val声明只读变量(常量),使用var声明可读写变量(变量)val a: string = 'Hello Kotlin'容易混淆的Long类型标记Kotlin的数值类型转换如果需要进行转换,可以使用如下方法:val f: Long = e.toLong()...
2021-10-09 15:45:02 973
原创 Gradle工程结构简介
Gradle是什么Gradle是一个灵活高效且支持多语言多平台的构建工具Gradle 是以 Groovy 语言为基础,面向Java应用为主。基于DSL(领域特定语言)语法的自动化构建工具。安装Gradle方式一:直接下载解压方式二:通过报管理工具进行安装SDKMAN:sdk install gradle Homebrew:brew install gradle方式三:Gradle Wrapper 每个Gradle工程都可以灵活配置Gradle版本 无需手动下载
2021-10-08 19:10:14 331
原创 Android开发中尺寸单位
https://blog.csdn.net/fumeidonga/article/details/50999977https://www.cnblogs.com/yangmingyu/p/6928063.htmlhttps://www.cnblogs.com/Chenshuai7/p/5277822.htmlhttps://www.jianshu.com/p/9dfa9dc1652b
2021-09-10 14:23:55 488
空空如也
空空如也
TA创建的收藏夹 TA关注的收藏夹
TA关注的人