1. gzyueqian
      13352868059

      Java培訓(xùn):什么是Java中的函數(shù)式編程

      更新時(shí)間: 2022-05-20 09:56:40來(lái)源: 粵嵌教育瀏覽量:9261

        每種編程語(yǔ)言都由某些語(yǔ)法和結(jié)構(gòu)規(guī)范定義,這些規(guī)范稱為編程范式。有不同的范式可用:命令式、面向?qū)ο蟆⒑瘮?shù)式、邏輯等。現(xiàn)代編程語(yǔ)言足夠復(fù)雜,可以建立在一個(gè)或多個(gè)范例之上,函數(shù)式編程是眾多此類范例之一,它強(qiáng)調(diào)編程的聲明性方面,其中業(yè)務(wù)邏輯由純函數(shù)組成,這一想法在某種程度上與面向?qū)ο蠓椒ǖ谋举|(zhì)形成鮮明對(duì)比,Java 在語(yǔ)言的句法結(jié)構(gòu)中很好地吸收了這種技術(shù)。想學(xué)習(xí)java技術(shù),建議考慮報(bào)名參加Java培訓(xùn),有明確的學(xué)習(xí)路線和全面系統(tǒng)的課程,能獲得較快提升。

        開(kāi)發(fā)人員現(xiàn)在可以使用 lambda 無(wú)縫編織代碼的功能方面,而無(wú)需破壞現(xiàn)有架構(gòu),甚至無(wú)需擔(dān)心向后兼容性。在這里,在本文中,我們將從 Java 的角度了解關(guān)于函數(shù)式編程。

        編程范式概述

        簡(jiǎn)而言之,編程范式是一種有效地用于對(duì)問(wèn)題域建模的思維或抽象模式。這就是編程語(yǔ)言所吸收的內(nèi)容,并允許程序員嚴(yán)格按照該原則使用它。可能有不同類型的問(wèn)題需要以不同的思維方式加以解決。這導(dǎo)致了各種編程范式及其相應(yīng)的編程語(yǔ)言的演變。

        

        例如,如果我們回顧一下機(jī)器語(yǔ)言盛行的1940年代,程序員實(shí)際上必須絕對(duì)詳細(xì)地編寫每條指令。這些指令通常包含狀態(tài)和變量,并像打開(kāi)的書(shū)一樣操縱內(nèi)存。這些說(shuō)明是對(duì)簡(jiǎn)單任務(wù)的詳細(xì)闡述,例如加法或邏輯計(jì)算。一些現(xiàn)代編程語(yǔ)言遵循類似的命令式描述模式,可能不是全部,但原則是存在的。這些類型的語(yǔ)言非常適合低級(jí)編程,例如從頭開(kāi)始構(gòu)建事物或直接與硬件交互。在java培訓(xùn)中,有理論知識(shí)+實(shí)踐項(xiàng)目,雙管齊下,學(xué)以致用,讓你深入淺出地學(xué)習(xí)java。

        一些編程語(yǔ)言遵循聲明而不是描述的原則。在這里,聲明實(shí)際含義的表述的一致性取決于對(duì)聲明性規(guī)范的解釋。緊隨其后的是高級(jí)語(yǔ)言,它們主要專注于完成工作,而不是花時(shí)間描述如何完成工作。這種類型的一個(gè)很好的例子是 SQL,我們只關(guān)注獲取記錄,而不是描述如何獲取記錄的每個(gè)細(xì)節(jié)。

        然而,有趣的是,Java 如何將函數(shù)式范式吸收到面向?qū)ο箫L(fēng)格的主流中而沒(méi)有對(duì)語(yǔ)言的設(shè)計(jì)進(jìn)行任何重大更改。這不僅啟動(dòng)了 lambda 的使用,而且還為用 Java 表達(dá)解決方案語(yǔ)句的全新方式提供了必要的成分。然而,函數(shù)式編程仍然是 Java 中的一個(gè)可選特性。一個(gè)人絕對(duì)可以做任何他想做的事情,而不用絲毫暗示,但這樣做,我們肯定會(huì)在此過(guò)程中被剝奪它的好處。

        函數(shù)式編程和Lambda演算

        函數(shù)式編程起源于稱為函數(shù)理論的數(shù)學(xué)模型和 Lambda 演算中的 lambda。Lambda 表達(dá)式利用函數(shù)式編程特性。在 Java 中使用 lambda 最明顯的體驗(yàn)是它簡(jiǎn)化并減少了創(chuàng)建某些構(gòu)造(例如匿名類)所需的源代碼量。但是,請(qǐng)注意,lambda 不僅僅是簡(jiǎn)化符合眼睛的編碼結(jié)構(gòu),在這個(gè)過(guò)程中,Java 引入了一個(gè)新的語(yǔ)法元素——一個(gè)新的運(yùn)算符(->)——以及類型推斷的概念。通過(guò)java培訓(xùn),你可以學(xué)習(xí)更多java編碼技巧,以提高java技能。

        許多編程語(yǔ)言在其句法結(jié)構(gòu)中使用這種現(xiàn)象,因?yàn)樗ǔT试S人們編寫更簡(jiǎn)單、更清晰的代碼。利用函數(shù)式編程概念的最常見(jiàn)和流行的編程語(yǔ)言之一是 JavaScript。

        

        OOP與函數(shù)式編程的概述

        十多年來(lái),OOP語(yǔ)言幾乎滿足了程序員的所有需求,毫無(wú)疑問(wèn),在未來(lái)的許多年里,OOP 語(yǔ)言將繼續(xù)如此。但是,在某些情況下,函數(shù)式編程似乎提供了更好的解決方案構(gòu)造。

        在OOP中,一切都表示為對(duì)象; 因此,即使我們只需要實(shí)現(xiàn)行為,問(wèn)題的每個(gè)解決方案都必須定義為類及其屬性的方案。這種情況是函數(shù)式編程的利基,我們只通過(guò)函數(shù)而不是對(duì)象來(lái)定義行為。這意味著在函數(shù)式編程中,我們直接實(shí)現(xiàn)一個(gè)函數(shù),而不是一個(gè)包含函數(shù)的類。這是OOP和函數(shù)式編程的基本區(qū)別。

        結(jié)論

        在某種程度上,我們可以說(shuō)編程范式是其原型背后的假設(shè),稱為編程語(yǔ)言。作為一種通用編程語(yǔ)言,Java吸收了函數(shù)式范式,其中接口和lambda 表達(dá)式在協(xié)作面向?qū)ο驤ava的DNA內(nèi)的函數(shù)式編程新規(guī)則方面發(fā)揮了至關(guān)重要的作用。想要學(xué)習(xí)java更多知識(shí)和技能,可以考慮參加java培訓(xùn),有經(jīng)驗(yàn)豐富的專業(yè)講師指導(dǎo)教學(xué),有緊跟市場(chǎng)需求的實(shí)時(shí)課程,可以讓你快速掌握這門技術(shù),節(jié)約時(shí)間,少走彎路。


      免費(fèi)預(yù)約試聽(tīng)課

      亚洲另类欧美综合久久图片区_亚洲中文字幕日产无码2020_欧美日本一区二区三区桃色视频_亚洲AⅤ天堂一区二区三区

      
      

      1. 亚洲国产911在线观看 | 日本最新二区三区免费不卡区 | 中文字幕成线人熟女 | 午夜爽爽一区二区 | 最新版天堂资源高清在线 | 性欧美老妇乱码一区二区 |