Scala减少代码重复

高阶函数可以把其它函数当作函数参数,帮助我们减少代码重复,例如:

object FileMatcher {
  private def fileHere = (new File(".\\file").listFiles())

  def fileEnding(query : String)  = {
    for(file <- fileHere if file.getName.endsWith(query))
      yield file

  }

  def fileMathching(query: String, matcher:(String, String) => Boolean) = {
    for(file <- fileHere if matcher(file.getName, query))
      yield file
  }

  def fileEnding2(query : String) = fileMathching(query, _.endsWith(_))

  def fileContains(query : String) = fileMathching(query, _.contains(_))

  def main(args: Array[String]): Unit = {

    fileEnding2(".scala").foreach { println }
  }
}

时间: 2024-11-02 09:30:49

Scala减少代码重复的相关文章

(八)简单了解下angularJS框架中NB的双向数据绑定机制,大大减少需要重复的开发代码量

之前写的第一篇angularJS入门文章 ,介绍ng-model的时候提到:使用angularJS的双向数据绑定机制,不需要我们编写繁琐的代码来实现同样的功能.现在我们看一个比较震撼的例子,看看angularJS是如何减少我们在前端开发中的繁琐劳动的.越是感受到框架功能的强大,越是能够激发学习的兴趣和动力. 假如我们有一个学生信息列表,包含学生的姓名.地址和年龄信息.假如这个数据源信息保存在data.js文件中. var g_phones = [ <span style="white-sp

让代码重构渐行渐远系列(2)——降低代码重复度

降低代码重复度:我所谓的代码重复指的不仅仅是多行一模一样的代码,同时也包括一些重复复制或是没必要的一些代码,如以下下代码: 1 public void 重复代码示例(int? 参数一) 2 { 3 if (参数一 != null) 4 { 5 //处理代码.... 6 } 7 else 8 { 9 参数一 = null; 10 //处理代码..... 11 } 12 13 //处理代码..... 14 15 } 可能有的朋友在第一眼看到这段代码时会说,这个没什么问题啊 ,哪有什么重复呀?真的就没

更改Scala的代码自动补全快捷键code completion

使用Eclipse的代码补全快捷键alt+/已经习惯了,但是IntelJIDEA中这个快捷键组合没有效果,那么我们来修改之,按ctrl+alt+s打开设置界面 之后在keymaps中选择Eclipse即可,那么下面就要来修改了,在右上角的搜索框中输入completion,在MainMenu中可以找到 选中Basic那一行,右击,选择Add Keyboard Shortcut,在这个窗口的First Stroke中同时按住alt+/键即可,之后OK 更改Scala的代码自动补全快捷键code co

用闭包减少代码

做一个radiolist控制textbox显示隐藏的功能,最初的代码: rblSecurityCameras = document.getElementsByName("<%=rblSecurityCameras.UniqueID %>"); txtSecurityCameras = document.getElementById("<%=txtSecurityCameras.ClientID %>"); for (i in rblSecur

android 自定义控件字体,解决字体偏移,卡顿,代码重复等问题

其实,安卓上使用自定义的字体非常得简单,在assets文件夹下面,自己定义一个font文件夹,然后,把自己的字体放进去,可以重命名一下,如图: 这样之后,在代码中,设置一下就可以,如下面所示: Typeface typeface = Typeface.createFromAsset(_instance.getAssets(), "fonts/mi4.ttf"); textView.setTypeface(typeface); 这样,textView显示的文字就是我们自定义的字体了. 但

前端程序员的蜕变——JS的 event 对象属性、使用实例、兼容性处理(极大提高代码效率、减少代码量)

下面讨论一下 js 中的 Event 对象,主要从以下三个方面详细的描述(点击标题可跳转到对应部分): 1.什么是event 2.怎么用event,用他该注意什么,几个简单实际应用 3.event在不同浏览器的存在的兼容问题,及如何去解决  1.  什么是event Event 对象代表事件的状态,比如事件在其中发生的元素.键盘按键的状态.鼠标的位置.鼠标按钮的状态等等.说的通俗一点就是,event是JS的一个系统内置对象.平时无法使用,当DOM元素发生按键.鼠标等等各种事件时,系统会自动根据D

静态html页面 ul+li模拟table,减少代码冗余,列数切换更方便

先直接上效果图: 二.帖代码 1 <!doctype html> 2 <html lang="en"> 3 <head> 4 <meta charset="UTF-8"> 5 <meta name="Author" content="haley"> 6 <meta name="Keywords" content="表格"&

Java Lombok 减少代码冗余 利刃

前言: 现在是ORM框架大行其道的时代,有着如Hibernate这样重量级的框架,提供Java<->数据的双向映射,也有如Mybatis这样的轻量级框架,提供Java<-数据的单方向映射, 无论使用的是哪种流行的框架,在其中都少不了Model类的编写,还有其中错综负责的getter/setter方法,这些getter/setter方法的存在,使得代码变得非常的臃肿.那么需要怎 么解决这个问题呢,便引入了这篇文章的主角Lombok. 1.下载: Lombok的官网地址是:http://pr

FindBugs 入门——帮你减少代码中的bug数

FindBugs 入门 FindBugs 作用 开发人员在开发了一部分代码后,可以使用FindBugs进行代码缺陷的检查.提高代码的质量,同时也可以减少测试人员给你报的bug数. 代码缺陷分类 根据缺陷的性质,大致可以分为下列几类 ·Bad practice  不好的做法 ·Correctness   可能有不正确 ·Dodgy code     糟糕的代码 ·Experimental  实验 ·Internationalization  国际化 ·Malicious code vulneril