在线观看www成人影院-在线观看www日本免费网站-在线观看www视频-在线观看操-欧美18在线-欧美1级

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

完善資料讓更多小伙伴認(rèn)識(shí)你,還能領(lǐng)取20積分哦,立即完善>

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

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

學(xué)FPGA,慢慢來(lái) ? 2019-08-16 16:08 ? 次閱讀

變量:

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

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

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

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

函數(shù):

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

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

| 函數(shù)名

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

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

||||等號(hào)

|||||

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

if(x > y)

x

else|

y|

}|

|

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

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

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

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

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

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

四、函數(shù)字面量

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

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

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

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

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

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

scala> f(1, 2)

res0: Int = 3

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

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

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

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

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

    關(guān)注

    0

    文章

    42

    瀏覽量

    6592
  • Chisel
    +關(guān)注

    關(guān)注

    0

    文章

    7

    瀏覽量

    484
收藏 人收藏

    評(píng)論

    相關(guān)推薦

    基于 IAR Embedded Workbench 的自研 MCU 芯片軟件函數(shù)變量內(nèi)存布局優(yōu)化精控方法

    函數(shù)變量指定section放置方法與操作流程,兼具過(guò)程記錄與詳細(xì)說(shuō)明,旨在打造一份實(shí)用的參考指南,助力開(kāi)發(fā)者精準(zhǔn)掌控程序的內(nèi)存分布與執(zhí)行邏輯。文檔涵蓋從默認(rèn)section表的介紹,到多種放置手段的闡釋,以及實(shí)際配置示例的展示,為后續(xù)的開(kāi)發(fā)工作奠定堅(jiān)實(shí)基礎(chǔ)。
    的頭像 發(fā)表于 04-30 16:38 ?77次閱讀
    基于 IAR Embedded Workbench 的自研 MCU 芯片軟件<b class='flag-5'>函數(shù)</b>與<b class='flag-5'>變量</b>內(nèi)存布局優(yōu)化精控方法

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

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

    Ansible Playbook中的變量使用技巧

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

    圖紙模板中的文本變量

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

    如何在文本字段中使用上標(biāo)、下標(biāo)及變量

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

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

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

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

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

    SUMIF函數(shù)使用教程

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

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

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

    Lua語(yǔ)法基礎(chǔ)教程(下篇)

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

    Lua語(yǔ)法基礎(chǔ)教程(中篇)

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

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

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

    面試常考+1:函數(shù)指針與指針函數(shù)、數(shù)組指針與指針數(shù)組

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

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

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

    HarmonyOS Next 原生應(yīng)用開(kāi)發(fā)-ArkTS語(yǔ)法適配背景說(shuō)明

    }`) } notify(\'Jack\', \'You look great today\') 在大多數(shù)情況下,函數(shù)notify會(huì)接受兩個(gè)string類型的變量作為輸入,產(chǎn)生一個(gè)新的字符串。但是,如果將
    發(fā)表于 07-01 16:49
    主站蜘蛛池模板: 国产啊v在线观看 | 在线观看精品视频看看播放 | 午夜色站 | 爱我免费视频观看在线www | 色免费视频 | 天堂电影在线观看免费入口 | 亚洲免费视频网址 | 手机在线观看免费视频 | 久久福利精品 | 亚洲三级在线免费观看 | 天天干天天插天天操 | 国产色系视频在线观看免费 | 91视频综合网 | 天天操操操操 | 日本欧美一区二区三区不卡视频 | 婷婷色在线播放 | www.亚洲成在线| h视频免费观看 | 欧美综合精品一区二区三区 | 日韩亚洲欧美日本精品va | 黄色美女网站免费 | 久久黄色视屏 | 国产在线视频欧美亚综合 | 狠狠色婷婷丁香综合久久韩国 | 最新黄色在线 | 久久综合九色 | 亚洲成年| 69er小视频| 亚洲欧美一区二区三区四区 | 亚洲a视频 | 亚洲人成影院在线高清 | 四虎音影| 天天做天天看夜夜爽毛片 | 亚洲视频在线一区二区 | 狠狠色噜噜狠狠狠狠狠色综合久久 | 国产黄色在线视频 | 四虎影院www| 午夜va | 国产一级做a爰大片免费久久 | 亚洲无吗在线视频 | 成年1314在线观看 |