HarmonyOS鸿蒙和Kotlin[上]

🌈莫玄忆纸🎐(互)

<p class="ql-block"><span style="color:rgb(237, 35, 8);">HarmonyOS鸿蒙</span></p> <p class="ql-block">&lt;pre前缀</p><p class="ql-block">Text(' ')显示文本(区分大小写)</p><p class="ql-block">.fontSize(数字)→文字大小</p><p class="ql-block">⭐IDE→集成环境(DevEco Studio)</p><p class="ql-block">⭐<span style="color:rgb(237, 35, 8);">ArkTs编程语言的后缀的.ets</span></p><p class="ql-block">@Entry →入口;进入</p><p class="ql-block">@Component →组件</p><p class="ql-block">@struct Index {=结构索引→自定义组件</p><p class="ql-block">@state=声明→变量常量</p><p class="ql-block">build() {=构建显示内容</p><p class="ql-block">let 名称: 类型 =' ';定义变量</p><p class="ql-block">重新赋值→name=' ';</p><p class="ql-block">const 名称: 类型=;定义常量</p><p class="ql-block">console.log();→控制台输出</p><p class="ql-block">注释同以往</p><p class="ql-block">+→控制台两种类型合并可以在其中计算()</p><p class="ql-block">++variable→先加再返</p><p class="ql-block">variable++→先返再加</p><p class="ql-block">+=→右加左赋值左</p><p class="ql-block">定义变量字符串可以省略类型<span style="color:rgb(237, 35, 8);">↙</span></p><p class="ql-block">let name=' " `;(三种表达)</p><p class="ql-block">直接${ }等同于+号[可以添加可以比较]</p><p class="ql-block">let len:number =名称.length;→长度</p><p class="ql-block">Boolean(a)转换→0为false,非0为true</p><p class="ql-block">margin=边缘</p><p class="ql-block">Divider()=分割</p><p class="ql-block">.(()=&gt;{点击后反应})</p> <p class="ql-block"><span style="color:rgb(22, 126, 251);">Kotlin[上]</span></p> <p class="ql-block">JetBrains开发的静态编程语言→Android主支持</p><p class="ql-block">开发环境→IntelliJIDEA,Android Studio</p><p class="ql-block">⭐<span style="color:rgb(237, 35, 8);">fun main(){ }</span></p><p class="ql-block">println()→打印并换行 引用⇔$加变量名</p><p class="ql-block">var 变量名: 数据类型 = 初始值</p><p class="ql-block">val→常量</p><p class="ql-block">Kotlin支持类型自动推断</p><p class="ql-block">Long数使用后缀L</p><p class="ql-block">Float 需加 f 后缀</p><p class="ql-block">转换直接打印$类型加变量名</p><p class="ql-block">隐性=原型.to类型()</p><p class="ql-block">ArithmeticException=算术异常(除数为0)</p><p class="ql-block">直接计算输出可以省略$</p><p class="ql-block">Double精度高于Float(比大小数值相等比类型)</p><p class="ql-block">字符串→双/三双引号</p><p class="ql-block"><span style="color:rgb(237, 35, 8);">.trimIndent()→自动去除缩进</span></p><p class="ql-block"><span style="color:rgb(237, 35, 8);">${变量.length}→获取长度</span></p><p class="ql-block">equals比较→忽略大小写</p><p class="ql-block">contains 检测是否包含</p><p class="ql-block">⭐<span style="color:rgb(237, 35, 8);">readLine()!!→读取输入[强制非空]</span></p><p class="ql-block">Elvis运算符?:→默认值</p><p class="ql-block"><span style="color:rgb(237, 35, 8);">⭐</span><span style="color:rgb(22, 126, 251);">?.</span><span style="color:rgb(237, 35, 8);">→安全调用</span></p><p class="ql-block">lateinit→+变量:类型(不用赋值)</p><p class="ql-block">initName(){→方法(在其中设定赋值)</p><p class="ql-block">if(变量is/!is类型){反应}</p><p class="ql-block">const→定义常量关键词</p><p class="ql-block">IDE文件→工具菜单→Show Kotlin Bytecode(字节码)</p><p class="ql-block">..→闭区间 until→不包含有边界</p><p class="ql-block">downTo→倒序遍历</p><p class="ql-block">⭐when ()=switch()</p><p class="ql-block">return→返回</p><p class="ql-block">step→步长(间隔)</p><p class="ql-block">定义函数fun 函数 (值:类型):类型{反应}</p><p class="ql-block">fun main(){可使用}</p><p class="ql-block">一行代码可以直接):类型=</p><p class="ql-block">string→字符串</p><p class="ql-block">return 反应</p><p class="ql-block">Unit→没有返回值的类型函数</p><p class="ql-block">返回类型在fun 函数名:后</p><p class="ql-block">while (true) {→一直循环</p><p class="ql-block">重载函数可以选择原函数与重载函数,函数名相同,反应不同</p><p class="ql-block">``用于有特殊字符的函数名后面同样也是</p><p class="ql-block">===→比较对象引用</p><p class="ql-block">若要允许变量为null,需在类型后加问号.</p><p class="ql-block">?.→解决空指针异常(链式调用)一个为空都为空</p><p class="ql-block">!!→非空断言(不为null,转为非空类型)[字符串大写]</p><p class="ql-block">throw=抛</p><p class="ql-block">try{}catch(e:){}finally{}不论是否都会执行finally</p><p class="ql-block">IllegalArgument Exception=非法参数例外(异常)</p><p class="ql-block">require(){"提示"}=请求,需要</p><p class="ql-block">check()同上=检查</p><p class="ql-block">IllegalState=非法状态</p><p class="ql-block">message=指令</p><p class="ql-block">listOf(,,,)→不可以改变列表数据</p><p class="ql-block">访问用list[索引]/list.get(索引)</p><p class="ql-block">list[list.lastIndex]→最后一个索引(动态)</p><p class="ql-block">mutableListOf(,,,)→=可变add可减</p><p class="ql-block">mutableList.set(索引, 新元素)→mutableList[索引]=新元素</p><p class="ql-block">also=并且</p><p class="ql-block">Buffered=缓冲</p><p class="ql-block">file(...)文件路径=文件</p><p class="ql-block">lines=排队</p><p class="ql-block">reader.close()→关闭读取器</p><p class="ql-block">setOf()→不可变set一组元素</p><p class="ql-block">可变同list</p><p class="ql-block">set.addAll(常量词)→添加多个元素[自动去重]</p><p class="ql-block">while (条件) {循环体代码+增减 </p><p class="ql-block">break=中断 break@outer跳出外层循环</p><p class="ql-block">list.toSet()→list转换set</p><p class="ql-block">set无序 list有序</p><p class="ql-block">元素顺序不一定相同</p><p class="ql-block">🍵Collection=收集</p><p class="ql-block">arrayOf()→数组</p><p class="ql-block">for(a in b){println(a)}</p><p class="ql-block">Array(数组大小) { "初始化函数" }</p><p class="ql-block">不可变val追加删减会编译错误</p><p class="ql-block">return@外围函数→从lambda表达式中返回</p><p class="ql-block">map=地图→</p><p class="ql-block">mapOf(a to 1,b to 2)不可变</p><p class="ql-block">mutableMapOf(,,,)可变运行之后to为=</p><p class="ql-block">map[]访问/.getValue()→get方法必须键存在</p><p class="ql-block">.put("键", 值)/[键]=值→添加条目</p><p class="ql-block">list.associateBy{it.length}→根据元素长度生成map键值,,键相等情况下,后元素覆盖前元素值,.</p><p class="ql-block">pair→一对</p><p class="ql-block">map.toList→生成List pair类型</p><p class="ql-block">each=每一个 map.foreach{(key,value)-&gt;打印</p><p class="ql-block">it代表集合元素→list的val 名称.map{it运算}</p><p class="ql-block">⭐固定搭配→先确认class(所有的位置名称类型)→定val关于属性listOf→map{it.名称}获取对应名称属性</p><p class="ql-block">list.flatMap{listOf(→集合转成另一个集合</p><p class="ql-block">flat=平的</p><p class="ql-block">nestedList.flatMap{it.map{→不保留嵌套,格式同上→扁平化</p><p class="ql-block">println(flatResult)</p><p class="ql-block">filter{条件}过滤集合中不符合的元素(加Not作用相反)</p><p class="ql-block">fun 函数名(值:类型)=值变化→简单的定义函数</p><p class="ql-block">multiplyBy=乘以</p><p class="ql-block">sequenceOf()=顺序→处理大数据集[中间的操作不会产生结果占有内存]</p><p class="ql-block">toList/sum→末端操作会产生结果</p><p class="ql-block">⭐.reduce{=减轻→聚合</p><p class="ql-block">accept=接收</p><p class="ql-block">{acc,num-&gt; acc + num}累加和[可*/+-]</p><p class="ql-block">.fold(初始值)→同reduce,但是这个可以定初始值</p><p class="ql-block">.sumBy→相加[可以更复杂,在{}中再次运算]</p><p class="ql-block">交换键与→fold(mutableMapOf()){acc[entry.value]=entry.key acc }println(reversedMap)</p><p class="ql-block">vararg→声明可变数量参数传入</p><p class="ql-block">*array→展开操作符</p><p class="ql-block">⭐arrow.core=箭头.主要的{导入同时三个}import</p><p class="ql-block">.Option=选择→Some/None</p><p class="ql-block">.Either=或者→Left错/Right对</p><p class="ql-block">divide=分开</p><p class="ql-block">().apply=请求→链式调用对象(可初始化)</p><p class="ql-block">("")=附加</p><p class="ql-block">?.let()=允许→调用操作参数[安全处理null]</p><p class="ql-block">数据".run{→this=数据/初始化→原设定class格式后在{}中修改</p><p class="ql-block">⚡with(主类){直接修改;调用定义好的方法}</p><p class="ql-block">.also{}调用本身后的反应→可以多次调用[转换大小写]</p><p class="ql-block">a.takeIf{比较值}→符合就=a,不符合就null[可通过?.增加不同的takeIf]</p><p class="ql-block">instartsWith("")→首字母</p> <p class="ql-block" style="text-align:center;"><span style="color:rgb(22, 126, 251);">Kotlin</span><span style="color:rgb(57, 181, 74);">[未完待续]</span></p>