Scala 函數(shù)–類(lèi)成員函數(shù)

2018-09-28 18:24 更新

函數(shù)–類(lèi)成員函數(shù)

當(dāng)程序越來(lái)越大,你需要將代碼細(xì)化為小的容易管理的模塊。Scala 支持多種方法來(lái)細(xì)化程序代碼,這些方法也為有經(jīng)驗(yàn)的程序員已經(jīng)掌握的:使用函數(shù),和 Java 相比,Scala 提供了多種 Java 不支持的方法來(lái)定義函數(shù),除了類(lèi)成員函數(shù)外,Scala 還支持嵌套函數(shù),函數(shù)字面量,函數(shù)變量等。

本篇先介紹類(lèi)或?qū)ο蟮某蓡T函數(shù)。這也是最常見(jiàn)的定義函數(shù)的方法。例如下面的例子定義了兩個(gè)成員函數(shù):

import scala.io.Source
object LongLines {
  def processFile(filename: String, width: Int) {
    val source= Source.fromFile(filename)
    for (line <- source.getLines())
      processLine(filename,width,line)
   }
   private def processLine(filename:String,
     width:Int, line:String){
     if(line.length > width)
       println(filename + ":" +line.trim)
   }
}

成員函數(shù) processFile 使用兩個(gè)參數(shù),一個(gè)文件名,一個(gè)為字符長(zhǎng)度,其作用是打印出文件中超過(guò)指定字符長(zhǎng)度的所有行。它調(diào)用另外一個(gè)私有成員函數(shù) processLine 完成實(shí)際的操作。

這個(gè)成員函數(shù),如果作為腳本使用,可以使用如下代碼:

LongLines.processFile(args(0),args(1).toInt)

可以看到 Scala 類(lèi)成員函數(shù)的使用方法和其它面向?qū)ο蟮某绦蛘Z(yǔ)言如 Java 基本一致。在后面的文章將介紹 Scala 函數(shù)不同于 Java 的一些特性。

以上內(nèi)容是否對(duì)您有幫助:
在線(xiàn)筆記
App下載
App下載

掃描二維碼

下載編程獅App

公眾號(hào)
微信公眾號(hào)

編程獅公眾號(hào)