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

google建设网站赚钱云南哪有网站建设报价的

google建设网站赚钱,云南哪有网站建设报价的,app软件制作多少钱,平台和网站有什么区别静态与顶层方法 静态方法#xff08;伴生对象#xff09; Java中有静态方法的概念#xff0c;但是在Kotlin中这个静态方法被弱化了#xff0c;还记得我们使用object创建一个单例类吗#xff0c;创建的单例类我们当时可以使用像静态方法一样的调用方式取调用#xff0c;…静态与顶层方法 静态方法伴生对象 Java中有静态方法的概念但是在Kotlin中这个静态方法被弱化了还记得我们使用object创建一个单例类吗创建的单例类我们当时可以使用像静态方法一样的调用方式取调用但object修饰的类会把它的所有方法都变成类似静态方法一样的调用于是Kotlin提供了companion object修饰符用于在类中修饰静态方法那样一个类就可以同时存在静态和非静态方法了。 class Student(name: String, age: Int, val clazz: String): Person(name, age), Study {override fun doHomeWork() {println(do homework.)}companion object {fun sayHello() {println(Hello!)}} }但是这种方式产生的类似静态方法一样的调用并非真正的静态方法如果你在Java中使用类似静态方法的调用会发现根本找不到这个方法companion object只是语法上模拟静态方法的调用方式实际上它们都不是真正的静态方法因此你如果需要在Java中调用那么你需要在方法上加上JvmStatic注解 class Student(name: String, age: Int, val clazz: String): Person(name, age), Study {override fun doHomeWork() {println(do homework.)}companion object {JvmStaticfun sayHello() {println(Hello!)}} }顶层方法 在kotlin中顶层方法指的是不用类似静态方法那样的调用方式调用的方法比如Helper.kt文件中有一个sayHello方法那么sayHello就是一个顶层方法你可以在其他类中通过sayHello()直接调用而不用通过Helper.sayHello()调用。 顶层方法的定义就是单纯一个kt文件在里面定义的所有fun方法都将做为顶层方法例如 package dev.xuanran.kt2// Helper.kt fun sayHello() {println(Hello!) }package dev.xuanran.kt2// Main.kt fun main() {sayHello() } 由于Java中没有顶层方法的概念所以在Java中如果需要调用顶层方法的话那么就需要通过Helper.sayHello()的形式调用。 延迟初始化 在正常的开发中类里面肯定存在很多全局变量而很多全局变量可能只有在类初始化的时候才能去创建实例但由于Kotlin的变量不可为空的机制你只能给类似的变量类型后面加上?来先手动给它赋值为null(这里的Demo假设student的对象实例需要通过网络获取)。 var student : Student? nullfun main() {// network... }但是这样会产生一个缺点就是后续你再去调用student内部的方法时因为你允许这个变量可空所以每次调用都需要来检查是否为空。 为此Kotlin提供了延迟初始化功能使用lateinit修饰全局变量那么就可以避免可空修饰?以及后续每次使用前用if判空。 lateinit var student: Studentfun main() {// network...student.doReadBook() } 但是lateinit关键字也不是没有风险如果你在它之前就调用它那么还是会产生Exception的。 紧接着Kotlin也给我们提供了一种方式帮助我们判断某个全局变量是否已初始化::变量名.isInitialized如果已经初始化过了我们就可以不用再执行初始化操作了。 lateinit var student: Studentfun main() {if (!::student.isInitialized) {// network...}student.doReadBook() }lazy懒加载 lazy代码块是Kotlin提供的一种懒加载技术代码块中的代码一开始并不会执行只有当修饰的变量首次被调用的时候才会执行并且将最后一行代码的返回值赋值给被修饰的全局变量具体语法规则如下 val p by lazy {println(b)c }fun main() {println(a)println(p) }输出结果a b c
http://www.w-s-a.com/news/791445/

相关文章:

  • 网站建设常州网站简介 title
  • 惠州市网站建设个人深圳网站优化价格
  • 营销型网站工程专业网站开发公司
  • 两个路由器做双网站西安关键词优化服务
  • 企业建站系统信息远象建设 网站
  • 移动建站平台物业管理系统app
  • 济南网站建设多少钱郑州公司做网站
  • 在阿里云网站建设wordpress模板如何修改字体
  • 网站推广方案设计购物网站模块例子
  • 潍坊网站定制公司网站图片放大特效怎么做的
  • 淘宝店铺买卖湘潭seo优化价格
  • 最好的网站建设用途合肥企业网站建设
  • 计算机编程与网站建设好玩的网页传奇
  • 商务网站建设找哪家本地推广找哪些网站
  • 手机h5网站企业网站管理系统的运维服务
  • 南京建设网站公司网站游戏怎么制作
  • 成都建站程序苏州市建设局招标网站首页
  • 自助建网站市场公司起名大全2020最新版的
  • dede网站模板北京 网站开发 大兴
  • 网站优化师招聘建设牌安全带官方网站
  • 南京网站建设网站做视频网站用什么格式
  • 普陀做网站价格wordpress接入qq互联
  • 网站2级页面怎么做杭州哪家做外贸网站
  • 做了静态网站怎么显示在互联网上营销策划与运营方案
  • 常见的英文网站国内军事新闻大事件
  • 傻瓜式做网站程序微信怎么开公众号
  • c2c电商网站wordpress仿36kr主题
  • 网站建设公司开发免费图纸网站
  • 一个网站页面设计多少钱做预算查价格的网站是哪个
  • 鳌江哪里有做网站百度短链接在线生成