最美情侣中文字幕电影,在线麻豆精品传媒,在线网站高清黄,久久黄色视频

歡迎光臨散文網(wǎng) 會員登陸 & 注冊

Scala是什么?你知道嗎?

2021-04-15 14:58 作者:編程大戰(zhàn)  | 我要投稿


眾所周知,Scala是spark的源碼編寫語言,因此掌握Scala開發(fā)就十分重要。那么Scala到底是什么呢?我們一起來看一下。

Scala 簡介

????Scala是一門多范式語言,一般常用的范式有:命令式 和 函數(shù)式,由于Scala是一門多范式語言,所以通俗來說我們可以說Scala是一門命令式編程語言同時也是函數(shù)式編程語言。

????命令式:命令式是植根于馮·諾依曼體系的,一個命令式程序就是一個馮·諾依曼機的指令序列,給機器提供一條又一條的命令序列讓其原封不動的執(zhí)行。通俗來說就是按照指令順序一步一步執(zhí)行。

????函數(shù)式:又稱泛函編程,它將計算機的計算視為數(shù)據(jù)中的函數(shù)計算。函數(shù)式編程最重要的基礎(chǔ)是λ(lambda)演算,λ演算對函數(shù)式編程語言有著巨大的影響。典型的函數(shù)式語言包括Erlang和Lisp等。

為什么要用函數(shù)式:

????目前來說CPU的性能發(fā)展大體上是在同等面積上集成更多的晶體管等集成電路,隨著納米技術(shù)的不斷提高,CPU能夠集成的計算單元也越來越多,但終歸是有上限的。所以在之后,單核的發(fā)展逐漸走向了多核的發(fā)展,以多核來達(dá)到性能的提升。

????目前計算機的CPU基本上都是多核CPU,在使用命令式編程的時候就設(shè)涉及到多線程之間的狀態(tài)共享,需要鎖機制實現(xiàn)并發(fā)的控制,而鎖機制雖然保證了安全性,但是卻對性能來說是一個阻礙。

????而函數(shù)式編程不會再多個線程之間共享狀態(tài),不需要用鎖機制,可以更好的并行處理,充分利用多核CPU的并行處理能力。

????如,電信行業(yè)多數(shù)使用Erlang來進行開發(fā),就是看中了函數(shù)式編程的并行處理能力。

Scala的特點

  • Scala是面向?qū)ο蟮?/strong>:Scala是一個純面向?qū)ο笳Z言,在某種意義上來講所有數(shù)值都是對象。對象的類型和行為是由class和trait來描述的。Class的抽象可由子類化和一種靈活的基于mixin的組合機制(它可作為多重繼承的簡單替代方案)來擴展。

  • Scala是函數(shù)式的: Scala還是一個函數(shù)式語言,在某種意義上來講所有函數(shù)都是數(shù)值。Scala為定義匿名函數(shù)提供了一種輕量級的語法,它支持高階(higher- order)函數(shù)、允許函數(shù)嵌套、支持局部套用(currying)。Scala的case類及其內(nèi)置支持的模式匹配模型代數(shù)類型在許多函數(shù)式編程語言中 都被使用。

  • Scala是靜態(tài)類型的:Scala配備了一套富有表現(xiàn)力的類型系統(tǒng),該抽象概念以一種安全的和一致的方式被使用。

  • Scala是可擴展的:Scala的設(shè)計承認(rèn)了實踐事實,領(lǐng)域特定應(yīng)用開發(fā)通常需要領(lǐng)域特定語言擴展。Scala提供了一個獨特的語言組合機制,這可以更加容易地以類庫的形式增加新的語言結(jié)構(gòu):兩者結(jié)合使用可方便地定義新語句,無需擴展語法,也無需使用類似宏的元編程工具。

    • 任何方式可以被用作中綴(infix)或后綴(postfix)操作符

    • 閉包按照所期望的類型(目標(biāo)類型)自動地被構(gòu)造

  • Scala可與Java和.NET進行互操作:Scala 設(shè)計時就考慮了與流行編程環(huán)境良好交互,如Java 2運行時環(huán)境(JRE)和 .NET框架(CLR)。特別是與主流面向?qū)ο笳Z言,如Java和C#盡量無縫交互。Scala有像Java和C#一樣的編譯模型(獨立編譯,動態(tài)裝載 類),允許訪問成千上萬的高質(zhì)量類庫。




Scala是什么?你知道嗎?的評論 (共 條)

分享到微博請遵守國家法律
三门县| 铅山县| 苏尼特左旗| 翁源县| 乡城县| 东港市| 秭归县| 德庆县| 自贡市| 蒙自县| 平果县| 琼海市| 合川市| 叙永县| 中宁县| 习水县| 隆昌县| 宣威市| 柳江县| 鹤峰县| 邓州市| 江津市| 兴仁县| 潼南县| 衡山县| 宜丰县| 额尔古纳市| 勃利县| 和平区| 萨迦县| 竹溪县| 正蓝旗| 泽普县| 茂名市| 临邑县| 抚宁县| 叙永县| 东平县| 久治县| 广昌县| 民勤县|