chinese直男口爆体育生外卖, 99久久er热在这里只有精品99, 又色又爽又黄18禁美女裸身无遮挡, gogogo高清免费观看日本电视,私密按摩师高清版在线,人妻视频毛茸茸,91论坛 兴趣闲谈,欧美 亚洲 精品 8区,国产精品久久久久精品免费

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

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

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

Chisel(三) Scala語法 類與對象

學(xué)FPGA,慢慢來 ? 2019-08-19 23:29 ? 次閱讀
加入交流群
微信小助手二維碼

掃碼添加小助手

加入工程師交流群

在Scala中,類是使用關(guān)鍵字“class”開頭的代碼定義的,定義完成類之后,就可以“new類名”的方式來構(gòu)造一個(gè)對象,而這個(gè)對象的類型就是類。在類之中,可以定義val或var類型的變量,也可以定義“def”函數(shù),這些都統(tǒng)稱方法。字段和方法統(tǒng)稱“成員”。字段通常運(yùn)用于保存對象的狀態(tài)與數(shù)據(jù),而方法則用于承擔(dān)對象的計(jì)算任務(wù)。

在外部想要訪問成員時(shí),可以使用“對象.成員”的形式來訪問,“val”類型的變量只能與初始化時(shí)的對象綁定。Scala的類成員默認(rèn)都是共有的,都可以使用“對象.成員”的方式來訪問。

在Scala中不需要顯式定義構(gòu)造方法,而是把類內(nèi)部非字段、非方法的代碼都當(dāng)做“主構(gòu)造方法”,而且,類名后面可以定義若干個(gè)參數(shù)列表,用于接收參數(shù),這些參數(shù)將在構(gòu)造對象時(shí)用于初始化字段并傳遞給主構(gòu)造方法使用。除了主構(gòu)造方法,還可以定義若干個(gè)輔助構(gòu)造方法。輔助構(gòu)造方法都是以“defthis(...)”來開頭的,而且第一步行為必須是調(diào)用該類的另一個(gè)構(gòu)造方法,即第一句語句必須是“this(...)”——要么是主構(gòu)造方法,要么是之前的另一個(gè)輔助構(gòu)造方法。

scala> class Students(n: String) {

| val name = n

| def this() = this("None")

| println("A student named " + n + " has been registered.")

| }

defined class Students

scala> val stu = new Students

A student named None has been registered.

stu: Students = Students@74309cd5

在這個(gè)例子中,定義了一個(gè)輔助構(gòu)造方法,該方法是無參的,其行為也僅是給主構(gòu)造方法傳遞一個(gè)字符串“None”。在后面創(chuàng)建對象時(shí),缺省了參數(shù),這樣與主構(gòu)造方法的參數(shù)列表是不匹配的,但是與輔助構(gòu)造方法匹配,所以stu指向的對象是用輔助構(gòu)造方法構(gòu)造的。

Java里,輔助構(gòu)造方法可以調(diào)用超類的構(gòu)造方法,而Scala加強(qiáng)了限制,只允許主構(gòu)造方法調(diào)用超類的構(gòu)造方法(詳情見后續(xù)章節(jié))。這種限制源于Scala為了代碼簡潔性與簡單性做出的折衷處理。

————————————————

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

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

如果在類名與類的參數(shù)列表之間加上關(guān)鍵字“private”,那么主構(gòu)造方法就是私有的,只能被內(nèi)部定義訪問,外部代碼構(gòu)造對象時(shí)就不能通過主構(gòu)造方法進(jìn)行。

主函數(shù)是Scala程序的唯一入口,即程序是由主函數(shù)開始運(yùn)行的,要提供這樣的入口,則必須在某個(gè)單例對象里定義一個(gè)名為“main”的函數(shù),而且這個(gè)函數(shù)只有一個(gè)參數(shù),類型是字符串?dāng)?shù)組Array[String],函數(shù)的返回類型是Unit。任何符合條件的單例對象都能成為程序的入口。



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

    關(guān)注

    0

    文章

    42

    瀏覽量

    6945
  • Chisel
    +關(guān)注

    關(guān)注

    0

    文章

    7

    瀏覽量

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

掃碼添加小助手

加入工程師交流群

    評論

    相關(guān)推薦
    熱點(diǎn)推薦

    基于凌羽派的OpenHarmony北向應(yīng)用開發(fā):ArkTS語法-數(shù)據(jù)類型和變量聲明

    一、簡介 ArkTS是一種設(shè)計(jì)用于構(gòu)建高性能應(yīng)用的編程語言。它在繼承TypeScript語法的基礎(chǔ)上進(jìn)行了優(yōu)化,以提供更高的性能和開發(fā)效率。 環(huán)境配置如下所示: API:18 SDK
    發(fā)表于 02-26 14:24

    如何分辨五網(wǎng)線

    分辨五與六網(wǎng)線的方法如下: 外皮標(biāo)識 五網(wǎng)線外皮標(biāo)注“CAT5”,六網(wǎng)線標(biāo)注“CAT6”。這是最直觀的區(qū)分方式,標(biāo)識直接表明網(wǎng)線的類別。 傳輸性能 五
    的頭像 發(fā)表于 01-28 10:21 ?1941次閱讀

    芯原入選國家知識產(chǎn)權(quán)示范企業(yè)創(chuàng)建對象

    1月12日,國家知識產(chǎn)權(quán)局公示了“2025-2027年國家知識產(chǎn)權(quán)強(qiáng)國建設(shè)示范創(chuàng)建對象”的評審結(jié)果,芯原微電子 (上海) 股份有限公司憑借其在知識產(chǎn)權(quán)創(chuàng)造、運(yùn)用、管理和保護(hù)方面的扎實(shí)基礎(chǔ)與突出成效,成功入選“國家知識產(chǎn)權(quán)示范企業(yè)創(chuàng)建對象”,這標(biāo)志著公司知識產(chǎn)權(quán)工作獲得了國
    的頭像 發(fā)表于 01-27 15:28 ?316次閱讀

    C與C++之間的聯(lián)系

    1、語法兼容性: C++完全兼容C語言的語法,這意味著任何有效的C語言程序都可以直接在C++編譯器下編譯通過。 2、底層控制: C++雖然增加了許多高級特性,但它仍然保持了對硬件資源的低級
    發(fā)表于 12-11 06:51

    C語言和C++之間的區(qū)別是什么

    區(qū)別 1、面向對象編程 (OOP): C語言是一種面向過程的語言,它強(qiáng)調(diào)的是通過函數(shù)將任務(wù)分解為一系列步驟進(jìn)行執(zhí)行。 C++在C語言的基礎(chǔ)上擴(kuò)展了面向對象的特性,支持(class)、封裝、繼承
    發(fā)表于 12-11 06:23

    圖解碼說-六大UML圖關(guān)系(依賴,繼承,實(shí)現(xiàn),關(guān)聯(lián),聚合,組合)

    UML 圖是面向對象設(shè)計(jì)的 “施工圖”,而依賴、繼承、實(shí)現(xiàn)、關(guān)聯(lián)、聚合、組合這六大關(guān)系,就是圖中定義互動規(guī)則的核心 “語法”。掌握它
    的頭像 發(fā)表于 11-05 09:03 ?879次閱讀
    圖解碼說-六大UML<b class='flag-5'>類</b>圖關(guān)系(依賴,繼承,實(shí)現(xiàn),關(guān)聯(lián),聚合,組合)

    語法糾錯(cuò)和testbench的自動生成

    在編寫Verilog代碼時(shí),我一般都是先在編輯器上寫完,因?yàn)榫庉嬈鱲scode或者notepad++可以提供語法高亮和自動補(bǔ)全等功能,然后用仿真器跑仿真,但是在編寫過程中不可避免的會有一些語法的錯(cuò)誤
    發(fā)表于 10-27 07:07

    跳線VS超五/超六——如何選擇“網(wǎng)絡(luò)血管”?

    在布線工程中,選對跳線類型直接影響網(wǎng)絡(luò)性能與成本。六跳線雖非“全能選手”,但在特定場景下性價(jià)比突出。 一、六跳線VS超五:千兆網(wǎng)絡(luò)的“分水嶺” 案例:某小區(qū)升級千兆光纖到戶,若使用超五
    的頭像 發(fā)表于 10-21 10:24 ?1486次閱讀
    六<b class='flag-5'>類</b>跳線VS超五<b class='flag-5'>類</b>/超六<b class='flag-5'>類</b>——如何選擇“網(wǎng)絡(luò)血管”?

    nuclei studio生成的c語言文件是不支持c的語法嗎?

    nuclei studio 生成的c語言文件感覺不支持c的語法,因?yàn)閯偸褂眠@個(gè)軟件,還請各位大佬幫忙看看
    發(fā)表于 10-20 11:02

    程序編譯運(yùn)行正常但是顯示語法錯(cuò)誤,為什么?

    樣例程序:can_sample.c rtconfig.h里啟用了#define RT_CAN_USING_HDR 代碼從圖中這里開始大段標(biāo)識語法錯(cuò)誤: 跳轉(zhuǎn)到宏
    發(fā)表于 09-25 06:27

    canopen如何通過對象字典控制外設(shè)?

    各位大佬好,我在移植canopen的時(shí)候碰到一個(gè)疑問。比如我修改對象字典2000,子索引為0這個(gè)目錄下的值,如何這個(gè)對象映射的是某個(gè)led燈的亮滅,輸入1為亮,0為滅。 問題就是我發(fā)送報(bào)文之后會進(jìn)入
    發(fā)表于 09-11 06:04

    網(wǎng)線接口能插六網(wǎng)線嗎

    網(wǎng)線接口(RJ45)可以插六網(wǎng)線,但實(shí)際使用效果需結(jié)合具體場景和設(shè)備綜合判斷。以下是詳細(xì)分析: 一、物理兼容性:接口通用,但需注意細(xì)節(jié) RJ45接口標(biāo)準(zhǔn)統(tǒng)一 五(Cat5)、超五
    的頭像 發(fā)表于 09-08 10:32 ?1.7w次閱讀

    網(wǎng)線面板分五

    網(wǎng)線面板確實(shí)分五和六,這種分類主要基于其適配的網(wǎng)線類型及傳輸性能,以下是具體說明: 一、分類依據(jù) 適配網(wǎng)線類型 五面板:專為五網(wǎng)線(CAT5)設(shè)計(jì),適用于百兆以太網(wǎng)(100Mb
    的頭像 發(fā)表于 08-08 09:46 ?5005次閱讀

    網(wǎng)線能用六水晶頭嗎

    網(wǎng)線可以使用六水晶頭,但需注意兼容性和實(shí)際效果,且通常不建議長期或關(guān)鍵場景下這樣搭配。 以下是詳細(xì)分析: 一、五網(wǎng)線與六水晶頭的兼容性 物理結(jié)構(gòu)兼容性 線徑與排列:五
    的頭像 發(fā)表于 08-06 10:29 ?1w次閱讀
    五<b class='flag-5'>類</b>網(wǎng)線能用六<b class='flag-5'>類</b>水晶頭嗎

    鴻蒙開發(fā)如何顯示Markdown格式語法 -- markdown_hm介紹

    在開發(fā)過程中,對于內(nèi)容的展示通常有富文本和Markdown兩種,后者更偏向于技術(shù)文檔、說明書一的內(nèi)容展示。但是和富文本不同的是,沒有一個(gè)原生組件可以用來解析展示Markdown語法的內(nèi)容,所以
    發(fā)表于 06-30 18:47