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

个人soho要怎么做企业网站黄页网络的推广网

个人soho要怎么做企业网站,黄页网络的推广网,网站开发倒计时,温岭网络推广公司1.扩展函数 1.1 作用域#xff1a;扩展函数写的位置不同#xff0c;作用域就也不同 扩展函数可以写成顶层函数#xff08;Top-level Function#xff09;#xff0c;此时它只属于它所在的 package。这样你就能在任何类里使用它#xff1a; package com.rengwuxianfun …1.扩展函数 1.1 作用域扩展函数写的位置不同作用域就也不同 扩展函数可以写成顶层函数Top-level Function此时它只属于它所在的 package。这样你就能在任何类里使用它 package com.rengwuxianfun String.method1(i: Int) {... } ... rengwuxian.method1(1)扩展函数也可以写在某个类里。然后你就可以在这个类里调用这个函数但还是必须使用那个前缀类的对象来调用它 class Example {fun String.method2(i: Int) {...}...rengwuxian.method2(1) // 可以调用 }注意它属于Example的成员函数限定该函数的调用范围又属于String的扩展函数限定该函数可以被谁调用 1.2 指向扩展函数的引用 扩展函数如果是Top-Level的话可以被引用但是是某个类的成员函数那就不可以被引用了 fun String.method1(i: Int) {... } ... String::method11.3 调用扩展函数的引用 直接调用或者用 invoke() 都可以不过要记得把 Receiver 也就是接收者或者说调用者填成第一个参数 (String::method1)(rengwuxian, 1) String::method1.invoke(rengwuxian, 1)// 以上两句都等价于 rengwuxian.method1(1)1.4 把扩展函数的引用赋值给变量 同样的扩展函数的引用也可以赋值给变量 val a: String.(Int) - Unit String::method1然后你再拿着这个变量去调用或者再次传递给别的变量都是可以的 rengwuxian.a(1) a(rengwuxian, 1) a.invoke(rengwuxian, 1)1.5 有无 Receiver 的变量的互换 class Example {fun happy(i: Int) {} }fun Example.sad(i: Int) {}每一个有 Receiver 的函数其实就是成员函数和扩展函数它的引用都可以赋值给两种不同的函数类型变量一种是有 Receiver 的一种是没有 Receiver 的 val n: (Example, Int) - Unit Example::happy val m: Example.(Int) - Unit Example::happy var x: (Example, Int) - Unit Example::sad var y: Example.(Int) - Unit Example::sad x m y n1.6 改变原本的性质使其可能无法被允许调用 一个普通的无 Receiver 的函数也可以直接赋值给有 Receiver 的变量 fun mad(e: Example, i: Int) {} ...val e: (Example, Int) - Unit ::mad val f: Example.(Int) - Unit ::mad通过这些类型的互相转换你可以把一个本来没有 Receiver 的函数变得可以通过 Receiver 来调用 Example().mad(1) //不允许调用报错 Example().e(1) //不允许调用报错 Example().f(1) //允许调用当然了你也可以反向操作去把一个有 Receiver 的函数变得不能用 Receiver 调用 fun Example.sad(i: Int) {} ...val g: (Example, Int) - Unit Example::sad val h: Example.(Int) - Unit Example::sad Example().sad(1) //允许调用 Example().g(1) //不允许调用报错 Example().h(1) //允许调用2.扩展属性 2.1 扩展变量与扩展常量 使用 var 修饰扩展的变量属性 , 变量必须定义 getter 和 setter 属性访问器 使用 val 修饰扩展的常量属性常量扩展属性只能且必须定义 getter 方法 2.2 定义位置 class Example {var name: String Tomvar age: Int 18 }和扩展函数一样扩展属性可以定义在Top-level也可以定义在某个类中 定义在Top-level那么全局都可以使用该属性 var Example.olderAge: Intget() {return this.age 1}set(value) {this.age value -1}val Example.nameAndAge: Stringget() {return ${this.name} : ${this.age}}定义在某个类中那么只能在该类中使用 class Example {var name: String Tomvar age: Int 18var Example.olderAge: Intget() {return this.age 1}set(value) {this.age value -1}val Example.nameAndAge: Stringget() {return ${this.name} : ${this.age}} }2.3 扩展属性没有幕后字段 扩展属性由于没有幕后字段 , 因此不能定义属性的初始化器 给扩展属性赋初值会报以下错误 扩展属性没有幕后字段不能保存实际的字段值 , 其属性访问器中只能调用对象中的属性和方法 , 不能调用扩展属性本身 参考文章 会写「18.dp」只是个入门——Kotlin 的扩展函数和扩展属性Extension Functions Properties
http://www.hkea.cn/news/14279931/

相关文章:

  • 什么是网站挂马多语言网站一个域名
  • 网站制作的动画怎么做的山东泰安旅游景点大全
  • 做海报那个网站好emlog文章转wordpress
  • 12.12做网站的标题做一个app上架需要多少费用
  • 怎么做外网网站监控网站建设范围
  • 模仿 网站如何推广app让别人注册
  • 初中做数学题的网站有没有做面粉美食的网站
  • 网站建设怎么找客源?北京做药流凤凰网站
  • 系统管理主要包括哪些内容搜索引擎技术优化
  • 陶瓷网站策划书快速微信网站建设
  • 有网站后台模板如何做数据库响应式企业网站模板
  • 网站制作添加视频ui设计的优势与不足
  • 西部数码网站工具手机显示的网站该怎样设计
  • 网站诊断分析列举五种网络营销模式
  • 网站正在建设中mp4企业网站优化做什么
  • 深圳全网营销型网站成都二次感染最新消息
  • 杭州网站建设求职简历哪个公司做网站好
  • word可以做网站链接吗衡阳衡阳县网站建设
  • 手机版网站开发教程c 网站开发案例详解百度云
  • 济南兼职做网站网页设计作业及答案
  • 网站如何做流动字幕网站快速有排名
  • 做一整套网站需要什么电脑网络服务器在哪里
  • 怎么看网站是用什么系统做的域名服务器查询
  • 在线获取颜色代码网站网站seo李守洪排名大师
  • 用php做网站用什么框架广州十大纯设计公司
  • 南京网站推广价格59网站一起做网店女鞋
  • 免费发布推广信息的网站外贸推广网站哪家
  • 盐山县网站建设价格wordpress icomoon
  • 做网站盘锦phpwind 手机网站模板
  • 做图片网站 解决版权南山区网站建设