亚洲av成人精品日韩一区,97久久久精品综合88久久,玩弄japan白嫩少妇hd,亚洲av片不卡无码久久,玩弄人妻少妇500系列

0
  • 聊天消息
  • 系統(tǒng)消息
  • 評論與回復
登錄后你可以
  • 下載海量資料
  • 學習在線課程
  • 觀看技術視頻
  • 寫文章/發(fā)帖/加入社區(qū)
會員中心
創(chuàng)作中心

完善資料讓更多小伙伴認識你,還能領取20積分哦,立即完善>

3天內(nèi)不再提示

chisel(二)scala語法 函數(shù)與變量

學FPGA,慢慢來 ? 2019-08-16 16:08 ? 次閱讀
加入交流群
微信小助手二維碼

掃碼添加小助手

加入工程師交流群

變量:

Scala在定義一個變量時,必須在其變量名前添加關鍵字“var”或“val”這兩者的區(qū)別是“var”修飾的變量可以新賦值,并把原值拋棄,而用了“val”修飾的變量,則被禁止重新賦值。前者在定義后只可以修改,而后者是只能讀不能寫的變量。

在定義變量時,Scala推薦的變量名命名方式是“駝峰命名法”,每個單詞的首字母大寫,變量名和函數(shù)名以小寫字母開頭,類、對象和特質(zhì)以大寫字母開頭。首次定義變量時就要給予具體的值來初始化。

在“var”類型重新賦值時,新值和舊值是同一類型,否則就會發(fā)生類型匹配錯誤

由于Scala是函數(shù)式編程,函數(shù)式編程的思想之一就是傳入函數(shù)的參數(shù)不應該被改變,所以Scala提倡建議val型變量。

函數(shù):

Scala的函數(shù)定義以“def”開頭,然后是一個自定義的函數(shù)名(推薦駝峰命名法),接著是用圓括號“( )”包起來的參數(shù)列表。在參數(shù)列表里,多個參數(shù)用逗號隔開,并且每個參數(shù)名后面要緊跟一個冒號以及顯式聲明的參數(shù)類型,因為編譯器在編譯期間無法推斷出入?yún)㈩愋?。寫完參?shù)列表后,應該緊跟一個冒號,再添加函數(shù)返回結果的類型。最后,再寫一個等號“=”,等號后面是用花括號“{ }”包起來的函數(shù)體。例如:

用“def”開始函數(shù)定義

| 函數(shù)名

||參數(shù)及參數(shù)類型

|||函數(shù)返回結果的類型

||||等號

|||||

def max(x: Int, y: Int): Int = {

if(x > y)

x

else|

y|

}|

|

花括號里定義函數(shù)體

---------------------

版權聲明:本文為CSDN博主「_iChthyosaur」的原創(chuàng)文章,遵循CC 4.0 by-sa版權協(xié)議,轉載請附上原文出處鏈接及本聲明。

原文鏈接:https://blog.csdn.net/qq_34291505/article/details/86750352

在Scala的代碼里,句末的分號是可選的,但是如果一行有多條語句,則必須用分號隔開;如果一行只有一條完整語句,那么這個分號可以寫也可以不寫。函數(shù)的“return”關鍵字也是可選的,建議不要顯式聲明“return”。返回結果有一個特殊的類型“Unit”表示沒有返回值,該函數(shù)沒有任何可引用的返回結果。Unit類型同樣可以被推斷出來,但如果顯式聲明為Unit類型的函數(shù),則即使函數(shù)體最后有一個可以返回具體值的表達式,也不會把表達式的結果返回。

如果將函數(shù)定義在class、object、trait里面的函數(shù),這種函數(shù)叫做“成員函數(shù)”或者“方法”

四、函數(shù)字面量

函數(shù)式編程有兩個主要思想,其中之一就是:函數(shù)是一等(first-class)的值。換句話說,一個函數(shù)的地位與一個Int值、一個String值等等,是一樣的。既然一個Int值可以成為函數(shù)的參數(shù)、函數(shù)的返回值、定義在函數(shù)體里、存儲在變量里,那么,作為地位相同的函數(shù),也可以這樣。你可以把一個函數(shù)當參數(shù)傳遞給另一個函數(shù),也可以讓一個函數(shù)返回一個函數(shù),亦可以把函數(shù)賦給一個變量,又或者像定義一個值那樣在函數(shù)里定義別的函數(shù)(即前述的嵌套函數(shù))。就像寫一個整數(shù)字面量“1”那樣,Scala也可以定義函數(shù)的字面量。函數(shù)字面量是一種匿名函數(shù)的形式,它可以存儲在變量里、成為函數(shù)參數(shù)或者當作函數(shù)返回值,其定義形式為:

(參數(shù)1: 參數(shù)1類型, 參數(shù)2: 參數(shù)2類型, ...) => { 函數(shù)體 }

通常,函數(shù)字面量會賦給一個變量,這樣就能通過“變量名(參數(shù))”的形式來使用函數(shù)字面量。在參數(shù)類型可以被推斷的情況下,可以省略類型,并且參數(shù)只有一個時,圓括號也可以省略。

函數(shù)字面量的形式可以更精簡,即只保留函數(shù)體,并用下劃線“_”作為占位符來代替參數(shù)。在參數(shù)類型不明確時,需要在下劃線后面顯式聲明其類型。多個占位符代表多個參數(shù),即第一個占位符是第一個參數(shù),第二個占位符是第二個參數(shù)……因此不能重復使用某個參數(shù)。例如:

scala> val f = (_: Int) + (_: Int)

f: (Int, Int) => Int = $$Lambda$1072/1534177037@fb42c1c

scala> f(1, 2)

res0: Int = 3

無論是用“def”定義的函數(shù),還是函數(shù)字面量,它們的函數(shù)體都可以把一個函數(shù)字面量作為一個返回結果,這樣就成為了返回函數(shù)的函數(shù);它們的參數(shù)變量的類型也可以是一個函數(shù),這樣調(diào)用時給的入?yún)⒕涂梢允且粋€函數(shù)字面量。類型為函數(shù)的變量,其冒號后面的類型寫法是“(參數(shù)1類型, 參數(shù)2類型,...) => 返回結果的類型”。例如:

scala> val add = (x: Int) => { (y: Int) => x + y }

add: Int => (Int => Int) = $$Lambda$1192/1767705308@55456711

scala> add(1)(10)

res0: Int = 11

scala> def aFunc(f: Int => Int) = f(1) + 1

aFunc: (f: Int => Int)Int

scala> aFunc(x => x + 1)

res1: Int = 3

在第一個例子中,變量add被賦予了一個返回函數(shù)的函數(shù)字面量。在調(diào)用時,第一個括號里的“1”是傳遞給參數(shù)x,第二個括號里的“10”是傳遞給參數(shù)y。如果沒有第二個括號,得到的就不是11,而是“(y: Int) => 1+ y”這個函數(shù)字面量。

在第二個例子中,函數(shù)aFunc的參數(shù)f是一個函數(shù),并且該函數(shù)要求是一個入?yún)镮nt類型、返回結果也是Int類型的函數(shù)。在調(diào)用時,給出了函數(shù)字面量“x => x + 1”。這里沒有顯式聲明x的類型,因為可以通過f的類型來推斷出x必須是一個Int類型。在執(zhí)行時,首先求值f(1),結合參數(shù)“1”和函數(shù)字面量,可以算出結果是2。那么,“f(1) + 1”就等于3了。

聲明:本文內(nèi)容及配圖由入駐作者撰寫或者入駐合作網(wǎng)站授權轉載。文章觀點僅代表作者本人,不代表電子發(fā)燒友網(wǎng)立場。文章及其配圖僅供工程師學習之用,如有內(nèi)容侵權或者其他違規(guī)問題,請聯(lián)系本站處理。 舉報投訴
  • scala
    +關注

    關注

    0

    文章

    42

    瀏覽量

    6690
  • Chisel
    +關注

    關注

    0

    文章

    7

    瀏覽量

    517
收藏 人收藏
加入交流群
微信小助手二維碼

掃碼添加小助手

加入工程師交流群

    評論

    相關推薦
    熱點推薦

    解鎖LuatOS新世界:次開發(fā)必備的3個核心常識

    來了解LuatOS開發(fā)需要熟悉的幾個常識。 ? 一、匿名函數(shù) 在Lua代碼里面,經(jīng)??吹?jīng)]有名字的函數(shù)。 這種函數(shù)定義之后,要么馬上運行,要么作為另一個函數(shù)的返回值賦給其他
    的頭像 發(fā)表于 06-23 16:08 ?64次閱讀
    解鎖LuatOS新世界:<b class='flag-5'>二</b>次開發(fā)必備的3個核心常識

    突破LuatOS開發(fā)瓶頸:三個次開發(fā)必備知識揭秘!

    。 ? 一、匿名函數(shù) 在Lua代碼里面,經(jīng)??吹?jīng)]有名字的函數(shù)。 這種函數(shù)定義之后,要么馬上運行,要么作為另一個函數(shù)的返回值賦給其他變量,所
    的頭像 發(fā)表于 06-23 15:05 ?68次閱讀
    突破LuatOS開發(fā)瓶頸:三個<b class='flag-5'>二</b>次開發(fā)必備知識揭秘!

    harmony OS NEXT-雙向數(shù)據(jù)綁定MVVM以及$$語法糖介紹

    # 鴻蒙Harmony-雙向數(shù)據(jù)綁定MVVM以及$$語法糖介紹 ## 1.1 雙向數(shù)據(jù)綁定概念 在鴻蒙(HarmonyOS)應用開發(fā)中,雙向數(shù)據(jù)改變(或雙向數(shù)據(jù)綁定)是一種讓數(shù)據(jù)·模型和UI組件之間
    的頭像 發(fā)表于 04-29 16:52 ?306次閱讀

    Ansible Playbook中的變量使用技巧

    在inventory中定義的連接變量(比如ansible_ssh_user);優(yōu)先級第
    的頭像 發(fā)表于 04-15 10:26 ?315次閱讀

    圖紙模板中的文本變量

    “ ?文本變量和系統(tǒng)自帶的內(nèi)置變量,可以幫助工程師靈活、高效地配置標題欄中的信息,而不用擔心模板中的文字對象被意外修改。 ? ” 文本變量語法 文本
    的頭像 發(fā)表于 11-13 18:21 ?654次閱讀
    圖紙模板中的文本<b class='flag-5'>變量</b>

    如何在文本字段中使用上標、下標及變量

    名為“Revision”,值為“0.0”的文本變量: 這些變量允許您用變量名替換任何文本字符串。這種替換發(fā)生在變量名稱在${VARIABLENAME}?的
    的頭像 發(fā)表于 11-12 12:23 ?659次閱讀
    如何在文本字段中使用上標、下標及<b class='flag-5'>變量</b>

    SUMIF函數(shù)對比VLOOKUP的優(yōu)勢

    功能和使用場景上有所不同。 SUMIF函數(shù)簡介 SUMIF函數(shù)是Excel中用于條件求和的函數(shù)。它的基本語法是: SUMIF (range, criteria, [sum_range]
    的頭像 發(fā)表于 11-11 09:16 ?1243次閱讀

    SUMIF函數(shù)與SUMIFS函數(shù)的區(qū)別

    : 1. 函數(shù)定義 SUMIF函數(shù) :用于對滿足單一條件的單元格求和。其基本語法為 SUMIF(range, criteria, [sum_range]) ,其中: range :應用條件的區(qū)域
    的頭像 發(fā)表于 10-30 09:51 ?7516次閱讀

    SUMIF函數(shù)使用教程

    SUMIF函數(shù)是Excel中非常實用的函數(shù)之一,能夠根據(jù)指定條件對數(shù)據(jù)進行篩選和求和操作。以下是對SUMIF函數(shù)使用方法的詳細教程: 一、基本語法 SUMIF
    的頭像 發(fā)表于 10-30 09:50 ?2482次閱讀

    條理清晰,淺顯易懂:Lua語法基礎知識(第部分)

    今天我們繼續(xù)學習Lua語法基礎教程,中篇。 五、變量 5.1 number變量 變量,可以看作是一個桶,在里面裝你想要裝的內(nèi)容。這些內(nèi)容可以是Lua包含的所有合法類型。 例如:我想要新
    的頭像 發(fā)表于 10-29 13:40 ?518次閱讀

    Lua語法基礎教程(下篇)

    今天我們繼續(xù)學習Lua語法基礎教程,下篇。 九、函數(shù) 9.1 初識函數(shù) 函數(shù)是指一段在一起的、可以做某一件事兒的程序,也叫做子程序。 在前面的內(nèi)容中,我們已經(jīng)接觸過了
    的頭像 發(fā)表于 10-26 11:41 ?663次閱讀
    Lua<b class='flag-5'>語法</b>基礎教程(下篇)

    Lua語法基礎教程(中篇)

    今天我們繼續(xù)學習Lua語法基礎教程,中篇。 五、變量 5.1 number變量 變量,可以看作是一個桶,在里面裝你想要裝的內(nèi)容。這些內(nèi)容可以是Lua包含的所有合法類型。 例如:我想要新
    的頭像 發(fā)表于 10-26 11:39 ?743次閱讀
    Lua<b class='flag-5'>語法</b>基礎教程(中篇)

    如何由系統(tǒng)函數(shù)求頻率響應

    復數(shù)域中描述和考察系統(tǒng)的特性,通常表示為G(s),其中s是復數(shù)變量,s=σ+jω(σ為實部,ω為虛部)。 頻率響應函數(shù):描述系統(tǒng)對不同頻率正弦輸入信號的響應特性,是系統(tǒng)傳遞函數(shù)在σ=0時的特例,即當系統(tǒng)處于穩(wěn)態(tài)時,輸入和輸出的
    的頭像 發(fā)表于 10-18 09:32 ?3544次閱讀

    面試???1:函數(shù)指針與指針函數(shù)、數(shù)組指針與指針數(shù)組

    函數(shù)是指返回值為指針的函數(shù)。語法:返回值類型*函數(shù)名(參數(shù)列表)。示例代碼:#include#includeint*getNumber(inta,intb){in
    的頭像 發(fā)表于 08-10 08:11 ?1455次閱讀
    面試???1:<b class='flag-5'>函數(shù)</b>指針與指針<b class='flag-5'>函數(shù)</b>、數(shù)組指針與指針數(shù)組

    XC8編譯器調(diào)用函數(shù)后局域變量值被改變是哪里出了問題?

    最近發(fā)現(xiàn)個問題,有個函數(shù)里邊調(diào)用別的函數(shù)后老出錯,查找程序沒有問題,經(jīng)過仿真后發(fā)現(xiàn)在調(diào)用一個子函數(shù)后有幾個局部變量值會發(fā)生改變,再分析原因,發(fā)現(xiàn)本
    發(fā)表于 07-26 07:36