W3Cschool
恭喜您成為首批注冊(cè)用戶(hù)
獲得88經(jīng)驗(yàn)值獎(jiǎng)勵(lì)
當(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 的一些特性。
Copyright©2021 w3cschool編程獅|閩ICP備15016281號(hào)-3|閩公網(wǎng)安備35020302033924號(hào)
違法和不良信息舉報(bào)電話(huà):173-0602-2364|舉報(bào)郵箱:jubao@eeedong.com
掃描二維碼
下載編程獅App
編程獅公眾號(hào)
聯(lián)系方式:
更多建議: