日韩黑丝制服一区视频播放|日韩欧美人妻丝袜视频在线观看|九九影院一级蜜桃|亚洲中文在线导航|青草草视频在线观看|婷婷五月色伊人网站|日本一区二区在线|国产AV一二三四区毛片|正在播放久草视频|亚洲色图精品一区

分享

Scala 學(xué)習(xí)心得(二): 關(guān)于 Scala 的函數(shù)。

 看風(fēng)景D人 2016-10-07
 我更傾向于像理解對(duì)象那樣來(lái)理解 scala 的函數(shù),因?yàn)?Scala 函數(shù)里面有一個(gè)叫做“函數(shù)文本” 的概念(這個(gè)概念在 ActionScript 中也有,在 AS 中,函數(shù)文本是指 未命名的函數(shù))。在 Scala 中,函數(shù)文本被編譯成一個(gè)類(lèi),類(lèi)在運(yùn)行期實(shí)例化的時(shí)候是一個(gè)函數(shù)值(function value)。所以,在源代碼里面的那個(gè)叫“函數(shù)文本”,運(yùn)行期對(duì)象里面的那個(gè)叫 函數(shù)值。很像“類(lèi)”……
Scala 語(yǔ)言中的占位符 “_”, 太可愛(ài)了,太可愛(ài)了。對(duì)于那些簡(jiǎn)單的一看函數(shù)名就知道用來(lái)干嘛的計(jì)算就不用傷神去想起個(gè)什么變量名字了。但是這種特性不能廣泛的應(yīng)用,因?yàn)檫@個(gè) cute 的 _ 用過(guò)了將會(huì)帶來(lái)很大的代碼維護(hù)量——本來(lái)是因?yàn)椴幌雽?xiě)太多的字而采用的替代符,可能過(guò) 1 個(gè)小時(shí)我就不記得了,需要寫(xiě)更多的注釋來(lái)標(biāo)記。但是不管怎么說(shuō),這種替代符在 Java 中是沒(méi)有的,看習(xí)慣 Java 的我們可能會(huì)開(kāi)始有些不適應(yīng)看別人寫(xiě)的 “_”.
Scala 中的尾遞歸。從項(xiàng)目本身的要求來(lái)說(shuō),是很講究效率的。遞歸,寫(xiě)起來(lái)容易,簡(jiǎn)潔,明了,但是會(huì)帶來(lái)很大的額外開(kāi)銷(xiāo)。在 C++ 和 Java 中,同樣的問(wèn)題,循環(huán)的效率一般會(huì)高一些。但是 Scala 的編譯器對(duì)尾遞歸做了優(yōu)化(我們期待 Scala 為遞歸做更多的優(yōu)化吧~),對(duì)于尾遞歸,它的效率幾乎和 循環(huán) 相同。但是,尾遞歸的限制比較多(也就是說(shuō),只有在最后調(diào)用自己的函數(shù)才是尾遞歸),這樣,能達(dá)到相同效率的應(yīng)用就有限了,而且運(yùn)用的時(shí)候還要考慮是否是“尾遞歸”的問(wèn)題。:( 

    本站是提供個(gè)人知識(shí)管理的網(wǎng)絡(luò)存儲(chǔ)空間,所有內(nèi)容均由用戶(hù)發(fā)布,不代表本站觀點(diǎn)。請(qǐng)注意甄別內(nèi)容中的聯(lián)系方式、誘導(dǎo)購(gòu)買(mǎi)等信息,謹(jǐn)防詐騙。如發(fā)現(xiàn)有害或侵權(quán)內(nèi)容,請(qǐng)點(diǎn)擊一鍵舉報(bào)。
    轉(zhuǎn)藏 分享 獻(xiàn)花(0

    0條評(píng)論

    發(fā)表

    請(qǐng)遵守用戶(hù) 評(píng)論公約

    類(lèi)似文章 更多