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

上饶高端网站建设百度指数趋势

上饶高端网站建设,百度指数趋势,免费制作logo的软件,网站的建设参考文献会一直坚持写关于Kotlin的入门系列文章,赶紧关注一起学习吧! 文章目录 前言 一、Kotlin的方法 1、方法声明 2、方法参数 3、方法作用域 二、Lambda表达式 1.Lambda 表达式的特点 2.Lambda 实践 总结 前言 经过前面对 Kotlin 的介绍,相信大家…

会一直坚持写关于Kotlin的入门系列文章,赶紧关注一起学习吧!

文章目录

前言

一、Kotlin的方法

1、方法声明

2、方法参数

3、方法作用域 

二、Lambda表达式

1.Lambda 表达式的特点

2.Lambda 实践

总结


前言

经过前面对 Kotlin 的介绍,相信大家已经能对 Kotlin 有了一个基本的认识。 从这节开始,我就为大家讲解 Kotlin的方法以及Lambda表达式等高级操作。


一、Kotlin的方法

1、方法声明

fun functionLearn(days: Int): Boolean {return days > 100
}

 成员方法

//成员方法
class Person {fun test1() {println("成员方法")}
}
Person().test1()

类方法 

Kotlin 中并没有 static 关键字,不过我们可以借助 companion object 来实现 类方法的目的。

(1)companion object 实现的类方法

class Person {companion object {fun test2() {println("companion object 实现的类方法")}}
}
Person.test2()

(2)静态类

    如果我们想实现一个工具 util 的话,可以借助 object 来创建一个静态类:

/**
* 整个静态类
*/
object NumUtil {fun double(num: Int): Int {return num * 2}
}

 (3)全局静态

     我们可以直接新建一个 Kotlin file 然后定义一些常量、方法。

单表达式方法

当方法返回单个表达式时,可以省略花括号并且在 = 符号之后指定代码体即可:

fun double(x: Int): Int = x * 2

当返回值类型可由编译器推断时,显式声明返回类型是可选的:

fun double(x: Int) = x * 

2、方法参数

默认参数

方法参数可以有默认值,当省略相应的参数时使用默认值。与其 Java 相比, 这可以减少重载数量:

fun read(b: Array<Byte>, off: Int = 0, len: Int = b.size) { /*……*/ }

 我们可以通过类型后面的 = 来设置默认值。

 如果一个默认参数在一个无默认值的参数之前,那么该默认值只能通过使用 具名参数调用该方法   来使用:

fun foo(bar: Int = 0, baz: Int) { /*……*/ }
foo(baz = 1) // 使用默认值 bar = 0

 如果在默认参数之后的最后一个参数是 lambda 表达式,那么它既可以作为 具名参数在括号内传   入,也可以在括号外传入:

fun foo(bar: Int = 0, baz: Int = 1, qux: () -> Unit) { /*……*/ }
foo(1) { println("hello") } // 使用默认值 baz = 1
foo(qux = { println("hello") }) // 使用两个默认值 bar = 0 与 baz = 1
foo { println("hello") } // 使用两个默认值 bar = 0 与 baz = 1

可变数量的参数

方法的参数(通常是最后一个)可以用 vararg 修饰符标记:

fun append(vararg str: Char): String {val result = StringBuffer()for (char in str) {result.append(char)}return result.toString()
}

 允许将可变数量的参数传递给方法:

append('h', 'e', 'l', 'l', 'o')

 可变参数的要求:

        • 只有一个参数可以标注为 vararg;

        • 如果 vararg 参数不是列表中的最后一个参数, 可以使用具名参数语 法传递其后的参数的              值,或者,如果参数具有方法类型,则通过在括 号外部传一个 lambda。

当我们调用 vararg 方法时,我们可以一个接一个地传参,例如 append('h', 'e', 'l', 'l', 'o'),或者,如果我们已经有一个数组并希望将其内容传给该方法, 我们使用伸展(spread)操作符(在数组前面加 *):

val world = charArrayOf('w', 'o', 'r', 'l', 'd')
val result = append('h', 'e', 'l', 'l', 'o',' ', *world)

3、方法作用域 

在 Kotlin 中方法可以在文件顶层声明,这意味着你不需要像一些语言如 Java、C# 那样需要创建一个类来保存一个方法。 此外除了顶层方法, Kotlin 中方法也可以声明在局部作用域、作为成员方法以及扩展方法。

局部方法

Kotlin 支持局部方法,即一个方法在另一个方法内部:

fun magic(): Int {fun foo(v: Int): Int {return v * v}val v1 = (0..100).random()return foo(v1)
}

 局部方法可以访问外部方法(即闭包)的局部变量。


二、Lambda表达式

在 Java 8 的时候开始支持 Lambda 表达式,目前 Lambda 语法在 Java 中已 经被广泛的运用,Lambda 表达式可以理解为是一种语法糖,值得庆幸的 是,Kotlin 一经开源成熟就已经支持这种语法。

Lambda 表达式的本质其实是匿名方法,因为在其底层实现中还是通过匿名 方法来实现的。但是我们在用的时候不必关心起底层实现。不过 Lambda 的 出现确实是减少了代码量的编写,同时也是代码变得更加简洁明了。

Lambda 作为方法式编程的基础,其语法也是相当简单的。这里先通过一段 简单的代码演示没让大家了解 Lambda 表达式的简洁之处:

view.setOnClickListener(new View.OnClickListener() {@Overridepublic void onClick(View v) {Toast.makeText(v.getContext(), "Lambda 简洁之道",
Toast.LENGTH_LONG).show();}
});

VS

view.setOnClickListener { v -> Toast.makeText(v.context, "Lambda 简洁之道
", Toast.LENGTH_LONG).show() }

1.Lambda 表达式的特点

语法如下:

无参数的情况 :

val/var 变量名 = { 操作的代码 }

有参数的情况:

val/var 变量名 : (参数的类型,参数类型,...) -> 返回值类型 = {参数 1,参数
2,... -> 操作参数的代码 }

可等价于 

// 此种写法:即表达式的返回值类型会根据操作的代码自推导出来。
val/var 变量名 = { 参数 1 : 类型,参数 2 : 类型, ... -> 操作参数的代码 }

lambda 表达式作为方法中的参数的时候,这里举一个例子:

fun test(a : Int, 参数名 : (参数 1 : 类型,参数 2 : 类型, ... ) -> 表达式返回
类型){...
}

2.Lambda 实践

如何使用 it

认识 it

• it 并不是 Kotlin 中的一个关键字(保留字)

• it 是在当一个高阶方法中 Lambda 表达式的参数只有一个的时候可以使用 it 来使 用此参数

• it 可表示为单个参数的隐式名称,是 Kotlin 语言约定的

• 实例 A:单个参数的隐式名称

• // 这里举例一个语言自带的一个高阶方法 filter,此方法的作用是过滤掉不满足条
件的值。
• val arr = arrayOf(1,3,5,7,9)
• // 过滤掉数组中元素小于 2 的元素,取其第一个打印。这里的 it 就表示每一个元
素。
• println(arr.filter { it < 5 }.component1())
•
• //结合上文的
• testClosure(1)(2) {
• println(it)
• }

 如何使用下划线_

在使用 Lambda 表达式的时候,可以用下划线(_)表示未使用的参数,表示不 处理这个参数。

在遍历一个 Map 集合的时候,这当非常有用

val map = mapOf("key1" to "value1", "key2" to "value2", "key3" to
"value3")
map.forEach { (key, value) ->println("$key \t $value")
}
// 不需要 key 的时候
map.forEach { (_, value) ->println(value)
}

总结

提示:这里对文章进行总结:
例如:以上就是今天要讲的内容,本文仅仅简单介绍了pandas的使用,而pandas提供了大量能使我们快速便捷地处理数据的函数和方法。

http://www.lbrq.cn/news/2518939.html

相关文章:

  • 桂林阳朔2天游玩攻略seo知识培训
  • wordpress widget 开发资源企业网站排名优化价格
  • 环保业网站建设的策划百度访问量统计
  • 学科建设网站外贸电商平台哪个网站最好
  • 国外免费素材模板网站建网站赚钱
  • 网站建设与管理是什么网店seo关键词
  • 网站开发公司报价电话营销技巧和营销方法
  • ps网站建设要知道的知识兰州网络推广公司哪家好
  • php做的网站源代码seo主要做什么工作内容
  • 专业的集团网站建设搜索引擎下载
  • 中科宁波网站建设小学生摘抄新闻2024
  • 苏州高端网站建设设计公司哪家好西安seo关键字优化
  • 商城类网站建设 数据库企业推广
  • 网页设计你若安好便是晴天作业aso搜索优化
  • 网站换新域名磁力引擎
  • 深圳高端网站建设美工免费推广引流app
  • 企业网站留言板网络推广平台
  • 网站中文域名要到期网络推广公司专业网络
  • 黄南北京网站建设seo排名诊断
  • 手机上那个网站做农产品推广比较好百度搜索优化建议
  • 搭建网站是什么意思重庆seo排名扣费
  • 网站ui外包阿森纳英超积分
  • 上海公司名字培训seo
  • 网站服务器做缓存百度推广合作
  • 网站做收藏本站那样seo站内优化培训
  • 高端定制站开发百度品牌专区怎么收费
  • 单位网站建设维护情况报告推广计划方案
  • 静态网页怎么做网站万网域名续费
  • sns社交网站 有哪些全网营销推广平台有哪些
  • 赤峰做网站多少钱世界新闻最新消息
  • lesson28:Python单例模式全解析:从基础实现到企业级最佳实践
  • gtest框架的安装与使用
  • 微软OpenAI展开深入谈判
  • “非参数化”大语言模型与RAG的关系?
  • SpringBoot之起步依赖
  • 实现视频实时马赛克