kotlin 函数内部函数_让我们学习如何使用Kotlin进行编码-005部分-函数

kotlin 函数内部函数

现在,我们将学习第6部分,这部分我们将重点学习函数。 在本课程中,我们将修改在004部分中创建的程序。 但是,在开始之前,请确保您创建了一个名为part_005的新软件包,并创建了一个名为app的新Kotlin文件。 太好了,让我们开始吧。

罗恩· 曼克( Ron Manke)

首先,我想谈一谈什么是函数以及在其他语言中可能会调用什么,基本上,我想在进入实际课程之前先提供一些有关此主题的背景知识。 函数有助于促进代码重用,而不必一遍又一遍地编写相同的逻辑,您只需将其打包到一个函数中,即可在应用程序的其他区域中引用它。 在其他语言中,这些可以称为方法,但在Kotlin中,它们称为函数。

如果您感到有些紧张,请放心,从一开始我们就一直在使用函数,这就是所谓的main,它包装了我们的应用程序。在我们的课程中,我想学习一下我们在一段时间内所做的工作循环并将其包装到函数中,这样就不必打印,直到找到名称中包含福特的汽车。 如果我们可以传入一个字符串,那将是非常好的,它将继续循环直到找到它为止。 这就是我们要做的。

让我们开始吧

我将提供一个模板,您可以将其复制并粘贴到IntelliJ中,实际上请这样做,因为我还想向您展示自动填充的工作原理。

fun main(args : Array<String>) { val cars = arrayOf( "Toyota Camry" , "Toyota Corolla" , "Honda Civic" , "Nissan Altima" , "Honda Accord" , "Hyundai Elantra" , "Nissan Sentra" , "Ford Fusion" , "Chevrolet Cruze" , "Hyundai Sonata" , "Ford Focus" , "Mazda MX-5 Miata" , "Fiat 124 Spider" , "Subaru BRZ" , "Toyota 86" , "Nissan Z" , "Dodge Challenger" , "Ford Mustang" , "Chevrolet Camaro" , "Audi TT / TTS" ) printUntilFound(cars, "ford" ) }

现在,您应该注意到printUntilFound为红色。 根据您使用的是Linux,Windows还是OS X,此操作的键盘快捷键会有所不同,因此与其给您提供一组按键供您选择,我将仅向您显示可以单击的内容。 作为家庭作业,请在某些时间点查找IntelliJ键盘快捷键

如果没有出现红色灯泡,请将光标放在名称上。 您可能需要单击不同的字母或在不同的区域上单击,但是请耐心等待,它会显示出来。

选择创建函数'printUntilFound'后,您会注意到它会生成一个方法。 在键盘上按Enter键,直到它在功能(称为功能主体)中生成代码。 您应该会看到类似这样的内容。

fun printUntilFound(cars: Array<String>, searchTerm: String) { throw UnsupportedOperationException( "not implemented" ) }

那么我们到底在看什么呢? 第一行是我们函数的定义。 它包含名称printUntilFound以及要传入的参数。要传入的第一个参数将是String对象的数组,其名称为cars。 第二个参数(自动生成时可能默认为s)名为searchTerm,它是一个String。 我们将使用searchTerm从本质上替换我们对福特的硬编码引用。

函数主体当前将引发异常,这意味着如果我们不处理该异常,应用程序将崩溃。 这是确保我们的代码不会调用不执行任何操作的空函数的一种方法。 它在较大的项目中很有用,您可能会认为您正在调用的函数可以执行某些操作,但实际上却从未实现过。 通常,您将立即删除此内容并添加功能所需的逻辑。

关于此功能的一部分可能令人困惑,那就是我们现在在我们的应用程序的两个地方引用了汽车。 因此,如果更容易理解,请随时将car重命名为carsArray之类的东西。

让我们填充身体

因此,现在该实际填写功能主体了。 由于您已经完成了004部分的操作,因此建议您自己填写,如果卡住了,请只看完整的身体。

太棒了,让我们继续比较笔记,这就是我的想法。

/** * Prints out a list of cars until it reaches a given search term. * It will print out the car that matches that search term and then * it will terminate. * @param cars a list of cars to print out * @param searchTerm the search term used to determine when to stop * printing out cars. */ fun printUntilFound(cars: Array<String>, searchTerm: String) { var wasFound = false var index = 0; while (!wasFound) { val car = cars[index] println(car) wasFound = car.toLowerCase().contains(searchTerm) index++ } }

好的,您可能没有提供功能文档,这是可以理解的,因为我从未提到过。 记录代码非常重要,尤其是在与其他工程师一起工作时。 在两周或一个月内,您可以返回此页面,并确切知道它应该做什么。 关于文档的另一个好地方是它增强了您的功能的意义。 我曾多次更改过功能,因为无法通过文档轻松描述它。 我可以继续阅读有关文档的整篇文章,因此我暂时不做文章。

因此,在此函数体内,您应该用searchTerm替换“ ford”,而实际上这就是所有更改。 现在在main函数中,当您调用此函数并将其传递给福特时,您应该注意到它的作用与以前完全相同。 继续并将printUntilFound(cars, “ nissan” )添加到main并注意会发生什么。 当您运行代码时。 现在它应该只打印出以Nissan Altima结尾的四个项目。

这是Kotlin功能的概述。 功能还有更多,将来我们可能会对其进行更多讨论。 我在本文中没有谈论的一件事是函数中的返回值。 返回值是函数完成后返回到调用站点(调用函数的位置)的值。

这就是本文的内容。 与往常一样,如果您有任何问题或意见,请在下面留下您的答复。 顺便说一句,您可能已经注意到上周没有有关Kotlin的文章。 我强烈建议您在Twitter上关注我,因为如果我必须延迟发表文章,我将始终发出一些公告。

Cody Engel(@ POTUS404)| 推特

翻译自: https://hackernoon.com/lets-learn-how-to-code-using-kotlin-part-005-functions-24d36edb8f51

kotlin 函数内部函数

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值