当前位置: 首页 > news >正文

青岛建站培训书画网站源码

青岛建站培训,书画网站源码,wordpress点赞出现空白页,最好用的网站建设软件文章目录 一、internal二、infix三、object四、open五、operator六、sealed class1. 用法一2. 用法二 七、typealias八、when1. 带参数2. 不带参数 一、internal internal 修饰方法#xff0c;表示这个方法只适合当前 module 使用#xff0c;同理修饰 class 也是一样。 Syn… 文章目录 一、internal二、infix三、object四、open五、operator六、sealed class1. 用法一2. 用法二 七、typealias八、when1. 带参数2. 不带参数 一、internal internal 修饰方法表示这个方法只适合当前 module 使用同理修饰 class 也是一样。 Synchronized internal fun executed(call: RealCall) {runningSyncCalls.add(call) }二、infix 2023-7-7 11:01:19 Kotlin允许在不使用括号和点号的情况下调用函数那么这种函数被称为 infix函数中缀函数。 定义 infix 函数需要满足以下要求 它们必须是成员函数或扩展函数它们必须只有一个参数其参数不得接受可变数量的参数且不能有默认值。 class Util(val number:Int) {infix fun sum(other: Int) {println(number other)} }fun main(){val u Util(5)u sum 5 // 10u sum 7 // 12 }请注意中缀函数总是要求指定接收者与参数。当使用中缀表示法在当前接收者上调用方法时需要显式使用 this不能像常规方法调用那样省略 class MyStringCollection {infix fun add(s: String) { /* …… */ }fun build() {this add abc // 正确add(abc) // 正确add abc // 错误必须指定接收者} }中缀函数与操作符的优先级 中缀函数调用的优先级低于算术操作符、类型转换以及 rangeTo 操作符 1 shl 2 3 等价于 1 shl (2 3) 0 until n * 2 等价于 0 until (n * 2) xs union ys as Set* 等价于 xs union (ys as Set*)中缀函数调用的优先级高于布尔操作符 与 ||、is- 与 in- 检测以及其他一些操作符 a b xor c 等价于 a (b xor c) a xor b in c 等价于 (a xor b) in c三、object 类和对象同时创建相当于 懒汉式单例里面的方法是 final 方法 val 变量相当于 private static finalvar 变量相当于 private static kotlin中有四种方式表示静态 object单例类模式companion objectJvmStatic注解模式顶层函数模式 object反编译java代码是由一个静态类包含一系列非静态函数 companion object同上 JvmStatic只能注解在单例或companion object 中的方法上反编译java代码是一个静态函数 顶层函数反编译java代码是一个静态函数 四、open 2023-7-7 09:51:24 在java中允许创建任意的子类并重写任意的方法除非显示的使用了final关键字进行阻止。 而在kotlin的世界里面则不是这样在kotlin中它所有的类默认都是 final的那么就意味着不能被继承而且在类中所有的方法也是默认是final的那么就是kotlin的方法默认也不能被重写所以open 关键字就是用来解决这个现象的。 五、operator 2023-1-16 14:00:13 operator重载修饰符。重载运算符以达到修改原有的运算逻辑输出调用者需要的结果 常见的运算符 运算符运算重载表示aba.plus(b)a-ba.minus(b)a*ba.times(b)a/ba.div(b)a%ba.rem(b) 或 a.mod(b)a…ba.rangeTo(b)a, ainc!anotaba.compareTo(b)0aba.compareTo(b)0aba.compareTo(b)0aba.compareTo(b)0a in bb.contains(a)a !in b!b.contains(a) 重载plus 比如上面的 ab我们在使用时候除了使用这种方式还可以使用运算重载表示a.plus(b)但是需要提前定义好函数 // 一定要使用 operator 修饰 plus 函数否则无法使用 号 class My(val a:Int){operator fun plus(b:Int):Int{return a*b // 也可以使用 a.times(b) -- kotlin默认运算符重载表示Primitives.kt} }// 使用 fun main(){val a My(3)val plus a.plus(3)val i a 4println(i)println(plus) // 输出// 12 9 }重载get operator除了可以重载运算符号还可以重载get class My(val a:Int){val arr mutableListOf(1,2,3,4)operator fun get(index:Int):Int{return arr[index1]} } // 使用 fun main(){val a My(3)val get a.get(0)// 也可以是 val get a[0]println(get)// 输出 2 }六、sealed class 2023-7-19 16:54:58 sealed class密封类。具备最重要的一个特点 其子类可以出现在定义 sealed class 的不同文件中但不允许出现在不同的 module 中且需要保证 package 一致。这样既可以避免 sealed class 文件过于庞大又可以确保第三方库无法扩展你定义的 sealed class达到限制类的扩展目的。 1. 用法一 是一个有特定数量子类的类看上去和枚举有点类似。 // TestSealed.ktsealed class GameAction(times: Int) {// Inner of Sealed Classobject Start : GameAction(1)data class AutoTick(val time: Int) : GameAction(2)class Exit : GameAction(3)}//与内部类的创建一样 fun main(args:ArrayString){var sc:GameAction GameAction.Start() }2. 用法二 2023-11-21 星期二 可以实现普通类无法实现的 条件判断语句。 sealed class Result class Success(val code: Int) : Result() class Exception(val code: Int, val message: String) : Result()fun handleResult(result: Result): String{return when(result) {is Success - {success}is Exception - {exception}} } 反编译后的java代码Result 类其实是一个抽象类Success 和 Exception 继承了这个抽象类。Result 类的构造函数是私有的不能在外部访问到。 通过继承这个抽象类达到限制类型的做法。 这其实和 java 中使用接口来限定参数类型的做法类似很好理解。 七、typealias 2023-10-27 20:34:13 别名。和 import as 很像但两者使用范围有差别具体查看链接。 typealias 只能定义在顶层位置不能被内嵌在类、接口、函数等内部(import as)。 kotlin中的别名 SinceKotlin(1.1) public actual typealias ArrayListE java.util.ArrayListE SinceKotlin(1.1) public actual typealias LinkedHashMapK, V java.util.LinkedHashMapK, V SinceKotlin(1.1) public actual typealias HashMapK, V java.util.HashMapK, V SinceKotlin(1.1) public actual typealias LinkedHashSetE java.util.LinkedHashSetE SinceKotlin(1.1) public actual typealias HashSetE java.util.HashSetE多数通用场景 // Classes and Interfaces (类和接口) typealias RegularExpression String typealias IntentData Parcelable// Nullable types (可空类型) typealias MaybeString String?// Generics with Type Parameters (类型参数泛型) typealias MultivaluedMapK, V HashMapK, ListV typealias LookupT HashMapT, T// Generics with Concrete Type Arguments (混合类型参数泛型) typealias Users ArrayListUser// Type Projections (类型投影) typealias Strings Arrayout String typealias OutArrayT Arrayout T typealias AnyIterable Iterable*// Objects (including Companion Objects) 对象包括伴生对象 typealias RegexUtil Regex.Companion// Function Types (函数类型) typealias ClickHandler (View) - Unit// Lambda with Receiver (带接收者的Lambda) typealias IntentInitializer Intent.() - Unit// Nested Classes and Interfaces (嵌套类和接口) typealias NotificationBuilder NotificationCompat.Builder typealias OnPermissionResult ActivityCompat.OnRequestPermissionsResultCallback// Enums (枚举类) typealias Direction kotlin.io.FileWalkDirection // (but you cannot alias a single enum *entry*)// Annotation (注解) typealias Multifile JvmMultifileClass八、when 2024-1-5 16:46:17 星期五 1. 带参数 fun mix(color1: ColorEnum, color2: ColorEnum) when(setOfColorEnum(color1, color2)){setOf(ColorEnum.RED, ColorEnum.GREEN) - 黄色setOf(ColorEnum.RED, ColorEnum.BLUE) - 紫色setOf(ColorEnum.BLUE, ColorEnum.GREEN) - 黑色else - throw Exception(不知道什么颜色) }2. 不带参数 带参数的会好理解一些根据when的条件去做判断最终给出符合条件的输出。但是不带参数的我们做了验证结果如下谁先成立执行谁并跳出判断。 class CustomBean{val conditon1trueval conditon2trueval conditon3false }fun main(){val cb CustomBean()when{cb.conditon1- l2.i(Splash,conditon1)cb.conditon2- l2.i(Splash,conditon2)else- l2.i(Splash,else)} }/*输出 conditon1 */看下反编译后的java代码所以相当于 if else 谁先成立执行谁并跳出判断。 public static void main(String[]args){CustomBean cb new CustomBean();if (cb.getConditon1()) {l2.i(Splash, conditon1);} else if (cb.getConditon2()) {l2.i(Splash, conditon2);} else {l2.i(Splash, else);} }
http://www.pierceye.com/news/420156/

相关文章:

  • 华为公司网站建设方案模板自己做网站的费用
  • 网站设计命名规范广州短视频内容营销平台
  • 天津专门做网站的公司成都市城乡建设局网站
  • 品牌网站升级wordpress 4.9中文
  • 网站搭建软件广告标识标牌制作公司
  • 做造价在哪个网站查价格微信小程序是什么语言开发的
  • 网站建设平台接单做电子商务平台网站需要多少钱
  • 甘肃网站seo技术厂家企业简介内容
  • 视觉中国设计网站做音乐网站
  • 金坛区建设工程质量监督网站西宁百姓网免费发布信息
  • 运维 网站开发网站如何引入流量
  • 网站建设泉州效率网络西安网站设计公司哪家好
  • 青羊建站报价网上能注册公司吗怎么注册
  • 免费网站虚拟主机整站seo技术搜索引擎优化
  • 青岛网站建设订做油画风网站
  • 网站备案名称的影响吗六安哪里有做推广网站
  • 网站建设策划书网站发布与推广长沙公司网站费用
  • 设计网页英语口碑优化seo
  • 试客那个网站做的好北京做软件开发的公司
  • 网站多套系统如何调用网页大图素材
  • 沧州网站建设方案咨询wordpress需要 伪静态
  • 安徽省住房和城乡建设部网站郑州百姓网免费发布信息
  • 电子商务网站开发是指聊城市城乡建设部网站查询
  • 聊天室网站模板国内市场调研公司
  • 网站做不做备案有什么区别网站媒体给房开做内容推广
  • 昆明专业网站建设模板蚌埠app制作公司
  • 平面ui设计网站网页布局设计类型
  • 东莞企石网站建设网站怎么留住用户
  • 公司网站虚假宣传但网站不是我做的wordpress自豪地采用修改
  • 山西大同网站建设哪家好宜宾seo快速排名