主頁 > 區塊鏈 > 鴻蒙 OS:使用 JavaScript 開發 Todo App UI 界面

鴻蒙 OS:使用 JavaScript 開發 Todo App UI 界面

2020-09-22 15:30:13 區塊鏈

距離鴻蒙 OS 2.0 發布已經過去一些日子了,看到鴻蒙系統強大的設備共享能力,我覺得未來它一定能夠成為主流的作業系統,在利用了分布式系統的優勢之后,多個設備間可以共享應用程式界面和資料,并且對于開發者,也可以使用一套代碼撰寫應用,就可以在多種設備終端上運行,

一開始我并沒有太關注鴻蒙系統,以為它只能使用 Java 開發應用,跟前端好像沒啥關系,但是看了開發檔案后,發現 UI 部分既支持純 JavaScript 開發,也支持純 Java 開發,還可以 Java 跟 JavaScript 混合開發,鴻蒙應用的開發跟 Android 的開發很像,只是把概念重新定義了一下,它分為 FA(Feature Ability)和 PA(Particle Ability)兩種應用模式,FA 是帶有用戶界面的,PA 則是運行在后臺的服務程式,可以想象成安卓里的 Activity 和 Service,不過也略有不同,FA 支持使用 Java 和 JavaScript 兩種方式開發 UI 界面,如果使用 Java,則跟 Android 一樣,使用 xml 定義布局或者 Java 代碼定義布局,每個頁面都是一個 PageAbility,使用 Java 撰寫業務代碼,不同的頁面之間傳遞資料依然使用 intent,而這里如果使用 JavaScript UI 框架的話,那么寫法跟 Vue 應用基本一模一樣,同樣支持 data、props、computed、watch 和 functions(methods),也能創建自定義的組件,這樣 web 前端工程師就很容易轉型成為鴻蒙 UI 開發工程師,不得不說華為在已有概念上做的整合,還是相當厲害的,

文章目錄

    • 專案介紹
    • 配置開發環境
    • 創建專案
    • 運行專案
    • 撰寫 HML 部分
    • 撰寫 CSS 部分
    • 撰寫 JS 部分
    • 總結

專案介紹

在了解了鴻蒙可以使用 JavaScript 開發之后,那么這里我就給大家展示一下前端慣例專案,Todo App 的開發程序,這篇文章將只先介紹 UI 的開發程序,因為這部分所遇到的坑就能產生足夠多的篇幅了,這個作品是一個 TV 版的應用,因為鴻蒙暫時不支持移動 App 的開發,它的最終效果如下圖所示(模擬器解析度較低,圖的質量不太好):

最終效果

專案 Github 地址:https://github.com/zxuqian/harmonyos-examples

這個專案簡單的展示了一個 Todo 串列,整體容器背景為淡紫色,todo 串列中有應用的標題,添加 todo 的輸入框和按鈕,過濾選項,以及 todo 串列,因為鴻蒙貌似不支持改變 checkbox 的背景顏色,未選中狀態是白色,跟 todo 串列容器的背景是一樣的,所以看不到,選中之后則可以看到是默認的藍色,因為這個設計稿原本是給手機界面設計的,而鴻蒙 TV 只支持橫向滾動條,所以這個界面看起來會有點奇怪,不過不影響我們學習專案開發方法,

配置開發環境

分析完界面之后,我們來正式進入開發階段,首先需要下載鴻蒙的 IDE 開發環境,它叫 DevEco Studio,可以從以下鏈接下載,下載時需要注冊華為賬號:

DevEco Studio:https://developer.harmonyos.com/cn/develop/deveco-studio

由于使用 JavaScript 開發專案,所以本地還需要安裝 Node.js 的運行環境,可以從下邊鏈接下載:

Node.js:https://nodejs.org/en/

有了這些工具,開發環境就配置好了,接下來,我們創建一個基于 JavaScript 的 TV 專案,

創建專案

打開 DevEco,在歡迎界面中選擇 Create HarmonyOS Project,然后在 Choose your ability template 界面中,Device 下選擇 TV,Template 選擇 Empty Feature Ability(JS) 創建一個空的 JS 專案,

創建專案

點擊 Next,在 Configure your project 界面輸入專案資訊,在 Project Name 中輸入 TodoApp,Package name 我這里使用了 com.zxuqian.todoapp,在 save location 中選擇專案的保存路徑,Compatible SDK 保持默認就好,填寫完成之后點擊 Finish 完成專案的創建,

配置專案資訊

我們先來大體看一下專案的目錄結構,這里列出來了關鍵的目錄說明:

TodoApp
  entry ----------------------- 專案入口,除 entry 外,還可以創建多個 Feature Ability,但只有 entry 是獨立的
     src ---------------------- 源代碼
       main
         java ----------------- Java 源代碼
         js   ----------------- JS 源代碼
           default
             common ----------- 公共組件
             i18n   ----------- 國際化
             pages  ----------- 頁面
               index ---------- 首頁檔案夾
                 index.css ---- 首頁 css 樣式
                 index.hml ---- 首頁 hml 結構
                 index.js ----- 首頁 js 資料系結代碼
             app.js ----------- JS 專案入口
         resources ------------ 靜態資源檔案,圖片、視頻等
         config.json ---------- 鴻蒙專案配置
       test ------------------- 測驗代碼
  gradle** -------------------- Java 依賴管理工具配置

運行專案

然后可以運行專案看一下效果,因為專案需要運行在模擬器中,所以得在 DevEco Studio 中創建一個 TV 模擬器,這里需要注意的是,鴻蒙的模擬器是遠程桌面的方式進行訪問,所以需要先認證華為開發者賬號,要創建模擬器,在 Tools 選單中選擇 HVD Manager:

選擇模擬器

然后會打開瀏覽器,顯示華為開發者登錄頁面,用華為賬號登錄進去之后,選擇個人或公司認證,填寫銀行卡后認證成功,認證完成之后要**關閉瀏覽器,**因為瀏覽器在打開狀態下,無法在 DevEco 中登錄,這應該是個 Bug,再次選擇 Tools -> HVD Manager,在彈出的瀏覽器頁面中登錄并授權后,就可以看到模擬器了:

選擇模擬器
選擇 TV,然后點擊 Actions 下的三角形就可以啟動成功了,默認瀏覽器是內嵌在 DevEco Studio 中的,可以點擊右上角的齒輪圖示,在彈出選單中選擇 View Mode -> Window 來讓它以視窗形式顯示,

設定模擬器顯示形式

另外,因為是遠程的模擬器,所以畫質不好,并且每次只能使用 1 小時,超時后需要重新啟動:

成功運行模擬器

模擬器啟動成功后,就可以啟動專案了,點擊工具列中的三角形按鈕,確保下拉選擇框選擇了 entry:

啟動專案

稍后就能在模擬器看到示例的 “你好,世界” 字樣了,

撰寫 HML 部分

現在開始 Todo App 的開發,先撰寫頁面結構,這里注意不是 HTML,而是 HML,并且檔案名也是 hml 結尾,因為鴻蒙的運行環境并不是瀏覽器,所以不支持原生的 html 標簽,雖然有些標簽名字一樣,但那些只是鴻蒙為了便利開發者而定的,底層實作完全不一樣,它們會轉換成原生的鴻蒙控制元件,當然它也有特殊的 hml 標簽,方便進行布局,語法上,除了一些 html 屬性不支持外,其他都一樣,這一點,跟 React Native 的原理是一樣的,鴻蒙支持的標簽可以查看 API 檔案:

HML 組件 API 檔案

另外鴻蒙開發程序中,不支持保存頁面實時重繪,需要手動重啟專案,這個確實有點棘手,就希望以后會完善吧,另外撰寫代碼后不用保存,這個倒是有點不習慣,

要撰寫 Todo App 結構,打開 js/default/pages/index/index.hml 檔案,刪掉里邊的示例代碼,首先最外層容器,即背景容器,使用 div 表示,class 名字為 main:

<div class="main"></div>

接下來是 Todo App 應用的容器,使用 class 名字為 container 的 div 表示:

<div class="main">
  <div class="container"></div>
</div>

在 container 里邊,使用 text 標簽顯示標題,hml 中所有的文字都使用 text 標簽表示:

<text class="h1">歡迎使用 Feng 待辦事項!</text>

接下來是添加 todo 專案的輸入框和按鈕,這部分跟 html 一樣:

<div class="input-add">
  <input type="text" />
  <button>+</button>
</div>

再下面是過濾選項,除了文字使用 text 表示之外,也跟 html 一樣:

<div class="filters">
  <text class="filter"> 全部 </text>
  <text class="filter"> 已完成 </text>
  <text class="filter"> 未完成 </text>
</div>

最后是 todo 串列,這里寫死了兩個待辦事項,后面我們會把它的資料重構到 js 檔案中,這里選擇使用了 div 來顯示 todo 串列,也可以使用 list 和 list-item,不過我個人覺得 list 適合整個頁面是個串列頁的情況,或者串列資料特別多的情況,你也可以自己嘗試一下,不過記得使用 background-color 和 box-shadow 去掉 list 的背景和陰影,Todo 串列的 hml 結構代碼如下:

<div class="todo-list">
  <div class="todo-item">
    <input type="checkbox" />
    <text>待辦1</text>
  </div>
  <div class="todo-item">
    <input type="checkbox" />
    <text>待辦2</text>
  </div>
</div>

hml 結構到這里就寫完了,接下來撰寫 CSS 樣式,

撰寫 CSS 部分

鴻蒙中的 CSS 與普通的 CSS 還是有一些區別的,有些屬性用法不同,并且不同的標簽對于 CSS 屬性的支持程度也不一樣,可以參考 HML 部分中提到的 API 檔案,在鴻蒙 TV 專案中,容器默認是 flex 布局,并且 flex-direction 為 row,行方向,這個需要注意一下,

打開 index.css,我們先給 text 標簽設定默認的文本顏色,因為我們的應用是淺色,而鴻蒙的主題為深色,所以文本為白色,這樣就看不到了,而且我也沒找到如何修改默認主題,這個你可以研究一下~,text 標簽的 css 代碼如下:

text {
  color: #414873;
}

接下來設定最外層容器的樣式,這里的 css 與普通的沒什么區別:

  • 把 Todo App 容器居中
  • 背景色設定為淡紫色
.main {
  justify-content: center;
  background-color: rgb(203, 210, 240);
}

再設定 Todo App 容器的樣式

  • 設定寬度、內間距、陰影、圓角邊框,這里要注意,圓角邊框的值不能是百分比,
  • 設定背景色只能使用 background-color,不能使用 background 簡寫形式,background 只能用來設定 linear-gradient 漸變色,如果設定背景圖,則需要使用 background-image,
  • 最后把 flex 的方向改成列方向,豎向排列,
.container {
  width: 60%;
  padding: 48px 28px;
  box-shadow: 0px 0px 24px rgba(0, 0, 0, 0.15);
  border-radius: 24px;
  background-color: rgb(245, 246, 252);
  flex-direction: column;
}

容器的第一行,是標題,我們設定一下它的外邊距、文字大小,我們這里把 flex-shrink 設定為 0,因為 TV 版不支持豎向滾動條,放的內容多了之后就會互相擠占空間(解決方法是在設計界面的時候該改成橫向式布局,甩鍋設計師~),這里就用禁止縮放來做為臨時解決方法,這個不是重點:

.h1 {
  margin: 24px 0;
  font-size: 28px;
  flex-shrink: 0;
}

標題下方是添加 todo 專案的輸入框和按鈕,首先給它們的容器設定相對定位,垂直居中對齊子元素:

.input-add {
  position: relative;
  align-items: center;
  flex-shrink: 0;
}

對于輸入框,設定一下它的大小,內間距,文字大小等,這里把它 z-index 設定為 5,因為后邊的添加按鈕要覆寫在它的上邊:

.input-add input {
  padding: 24px 52px 24px 18px;
  border-radius: 48px;
  box-shadow: 0px 0px 24px rgba(0, 0, 0, 0.08);
  width: 100%;
  font-size: 24px;
  align-items: center;
  justify-content: center;
  color: #626262;
  z-index: 5;
}

按鈕的樣式:

  • 設定為圓形
  • 使用 background 設定漸變的背景色
  • 設定+號文本為白色,文字大小為 18px
  • 向左移動 36px,緊貼輸入框的右邊框
  • 設定 z-index 為 10,來覆寫在輸入框上邊,
.input-add button {
  width: 36px;
  height: 36px;
  border-radius: 18px;
  background: linear-gradient(#c0a5f3, #7f95f7);
  color: white;
  font-size: 18px;
  left: -36px;
  z-index: 10;
}

剩下的過濾選項和 todo 串列的 CSS 就沒什么特殊的了,可以參考文章開頭提供的、完整的源代碼實作,另外要注意的是,這里的 CSS 不支持 before 和 after 偽元素,因為畢竟不是原生的 html,無法創建虛擬的 dom,

撰寫 JS 部分

我們的過濾選項和 Todo 串列中的資料可以從 JS 中獲取,在 JS 中定義好資料,然后在 hml 中訪問,這里的語法和方式跟 Vue 一樣,

打開 index.js 檔案,洗掉 data 中的示例資料和示例的生命周期函式,然后添加過濾選項需要的資料 filters,和 todo 串列中的資料 todos:

data: {
  title: ""
    filters: ["全部", "已完成", "未完成"],
    todos: [{id: 1, content: "待辦1"}, {id: 2, content: "待辦2"}]
},

接著打開 index.hml 檔案,把 filters 中的 text 刪掉 2 個,剩下的一個改成:

  • 使用 for 指令遍歷 data 中的 filters 資料,并且給每個元素命名為 filter
  • 設定 tid, 相當于 Vue 中的 key,用于串列資料渲染性能優化,這里直接使用$idx,陣列的索引,{{}}用來獲取變數的值
  • 然后內容則是 filter 變數中的值,使用 {{filter}} 獲取,
<text class="filter" for="{{filter in filters}}" tid="{{$idx}}">
  {{filter}}
</text>

接下來,刪掉一個 todo-item 的示例,同樣的改成回圈渲染:

  • 這里的 tid 直接使用 todo 中的 id,可以直接使用 todo 中的 id 屬性名字
  • 然后在 text 中使用 todo 中的 content 屬性值
<div class="todo-item" for="{{todo in todos}}" tid="id">
  <input type="checkbox" />
  <text>{{todo.content}}</text>
</div>

好了,現在代碼就撰寫完成了,可以運行一下看一下最終效果,和開頭的圖片如果是一樣的話,那么就成功了,

總結

這篇文章給如何撰寫鴻蒙 JS 專案提供了入門的指導,里邊要涉及的內容還有很多,比如撰寫自定義的組件,使用@system/fetch 等系統組件加載遠程資料等,這些一篇博文講下來內容會比較多,所以后期會再繼續更新進階一點的教程,在撰寫完這個示例專案之后,發現鴻蒙的發展前景還是很大的,融合了當下最流行的應用開發方式,這樣對于它的生態發展很有幫助,開發者的學習成本低,作業量也低,一套代碼就可以在 TV、手表、PC、手機上運行,有著相當好的開發體驗,希望隨著系統和完善,有朝一日終成為主流的作業系統,

最后總結下,通過本文你應該掌握了:

  • 配置開發環境并添加模擬器,
  • 鴻蒙中的 hml 、css ,js 的語法、用法和一些要注意的坑,
  • 成功運行 Todo TV 專案,

如果覺得教程有幫助,請點贊并關注,我是峰華,感謝!

我正在參加 CSDN 的【鴻蒙技術征文】活動,請給我點贊支持,

轉載請註明出處,本文鏈接:https://www.uj5u.com/qukuanlian/105569.html

標籤:區塊鏈

上一篇:日常學習之webpack①

下一篇:GPS時間統一系統(時統設備)介紹與應用

標籤雲
其他(157675) Python(38076) JavaScript(25376) Java(17977) C(15215) 區塊鏈(8255) C#(7972) AI(7469) 爪哇(7425) MySQL(7132) html(6777) 基礎類(6313) sql(6102) 熊猫(6058) PHP(5869) 数组(5741) R(5409) Linux(5327) 反应(5209) 腳本語言(PerlPython)(5129) 非技術區(4971) Android(4554) 数据框(4311) css(4259) 节点.js(4032) C語言(3288) json(3245) 列表(3129) 扑(3119) C++語言(3117) 安卓(2998) 打字稿(2995) VBA(2789) Java相關(2746) 疑難問題(2699) 细绳(2522) 單片機工控(2479) iOS(2429) ASP.NET(2402) MongoDB(2323) 麻木的(2285) 正则表达式(2254) 字典(2211) 循环(2198) 迅速(2185) 擅长(2169) 镖(2155) 功能(1967) .NET技术(1958) Web開發(1951) python-3.x(1918) HtmlCss(1915) 弹簧靴(1913) C++(1909) xml(1889) PostgreSQL(1872) .NETCore(1853) 谷歌表格(1846) Unity3D(1843) for循环(1842)

熱門瀏覽
  • JAVA使用 web3j 進行token轉賬

    最近新學習了下區塊鏈這方面的知識,所學不多,給大家分享下。 # 1. 關于web3j web3j是一個高度模塊化,反應性,型別安全的Java和Android庫,用于與智能合約配合并與以太坊網路上的客戶端(節點)集成。 # 2. 準備作業 jdk版本1.8 引入maven <dependency> < ......

    uj5u.com 2020-09-10 03:03:06 more
  • 以太坊智能合約開發框架Truffle

    前言 部署智能合約有多種方式,命令列的瀏覽器的渠道都有,但往往跟我們程式員的風格不太相符,因為我們習慣了在IDE里寫了代碼然后打包運行看效果。 雖然現在IDE中已經存在了Solidity插件,可以撰寫智能合約,但是部署智能合約卻要另走他路,沒辦法進行一個快捷的部署與測驗。 如果團隊管理的區塊節點多、 ......

    uj5u.com 2020-09-10 03:03:12 more
  • 谷歌二次驗證碼成為區塊鏈專用安全碼,你怎么看?

    前言 谷歌身份驗證器,前些年大家都比較陌生,但隨著國內互聯網安全的加強,它越來越多地出現在大家的視野中。 比較廣泛接觸的人群是國際3A游戲愛好者,游戲盜號現象嚴重+國外賬號安全應用廣泛,這類游戲一般都會要求用戶系結名為“兩步驗證”、“雙重驗證”等,平臺一般都推薦用谷歌身份驗證器。 后來區塊鏈業務風靡 ......

    uj5u.com 2020-09-10 03:03:17 more
  • 密碼學DAY1

    目錄 ##1.1 密碼學基本概念 密碼在我們的生活中有著重要的作用,那么密碼究竟來自何方,為何會產生呢? 密碼學是網路安全、資訊安全、區塊鏈等產品的基礎,常見的非對稱加密、對稱加密、散列函式等,都屬于密碼學范疇。 密碼學有數千年的歷史,從最開始的替換法到如今的非對稱加密演算法,經歷了古典密碼學,近代密 ......

    uj5u.com 2020-09-10 03:03:50 more
  • 密碼學DAY1_02

    目錄 ##1.1 ASCII編碼 ASCII(American Standard Code for Information Interchange,美國資訊交換標準代碼)是基于拉丁字母的一套電腦編碼系統,主要用于顯示現代英語和其他西歐語言。它是現今最通用的單位元組編碼系統,并等同于國際標準ISO/IE ......

    uj5u.com 2020-09-10 03:04:50 more
  • 密碼學DAY2

    ##1.1 加密模式 加密模式:https://docs.oracle.com/javase/8/docs/api/javax/crypto/Cipher.html ECB ECB : Electronic codebook, 電子密碼本. 需要加密的訊息按照塊密碼的塊大小被分為數個塊,并對每個塊進 ......

    uj5u.com 2020-09-10 03:05:42 more
  • NTP時鐘服務器的特點(京準電子)

    NTP時鐘服務器的特點(京準電子) NTP時鐘服務器的特點(京準電子) 京準電子官V——ahjzsz 首先對時間同步進行了背景介紹,然后討論了不同的時間同步網路技術,最后指出了建立全球或區域時間同步網存在的問題。 一、概 述 在通信領域,“同步”概念是指頻率的同步,即網路各個節點的時鐘頻率和相位同步 ......

    uj5u.com 2020-09-10 03:05:47 more
  • 標準化考場時鐘同步系統推進智能化校園建設

    標準化考場時鐘同步系統推進智能化校園建設 標準化考場時鐘同步系統推進智能化校園建設 安徽京準電子科技官微——ahjzsz 一、背景概述隨著教育事業的快速發展,學校建設如雨后春筍,隨之而來的學校教育、管理、安全方面的問題成了學校管理人員面臨的最大的挑戰,這些問題同時也是學生家長所擔心的。為了讓學生有更 ......

    uj5u.com 2020-09-10 03:05:51 more
  • 位元幣入門

    引言 位元幣基本結構 位元幣基礎知識 1)哈希演算法 2)非對稱加密技術 3)數字簽名 4)MerkleTree 5)哪有位元幣,有的是UTXO 6)位元幣挖礦與共識 7)區塊驗證(共識) 總結 引言 上一篇我們已經知道了什么是區塊鏈,此篇說一下區塊鏈的第一個應用——位元幣。其實先有位元幣,后有的區塊 ......

    uj5u.com 2020-09-10 03:06:15 more
  • 北斗對時服務器(北斗對時設備)電力系統應用

    北斗對時服務器(北斗對時設備)電力系統應用 北斗對時服務器(北斗對時設備)電力系統應用 京準電子科技官微(ahjzsz) 中國北斗衛星導航系統(英文名稱:BeiDou Navigation Satellite System,簡稱BDS),因為是目前世界范圍內唯一可以大面積提供免費定位服務的系統,所以 ......

    uj5u.com 2020-09-10 03:06:20 more
最新发布
  • web3 產品介紹:metamask 錢包 使用最多的瀏覽器插件錢包

    Metamask錢包是一種基于區塊鏈技術的數字貨幣錢包,它允許用戶在安全、便捷的環境下管理自己的加密資產。Metamask錢包是以太坊生態系統中最流行的錢包之一,它具有易于使用、安全性高和功能強大等優點。 本文將詳細介紹Metamask錢包的功能和使用方法。 一、 Metamask錢包的功能 數字資 ......

    uj5u.com 2023-04-20 08:46:47 more
  • Hyperledger Fabric 使用 CouchDB 和復雜智能合約開發

    在上個實驗中,我們已經實作了簡單智能合約實作及客戶端開發,但該實驗中智能合約只有基礎的增刪改查功能,且其中的資料管理功能與傳統 MySQL 比相差甚遠。本文將在前面實驗的基礎上,將 Hyperledger Fabric 的默認資料庫支持 LevelDB 改為 CouchDB 模式,以實作更復雜的資料... ......

    uj5u.com 2023-04-16 07:28:31 more
  • .NET Core 波場鏈離線簽名、廣播交易(發送 TRX和USDT)筆記

    Get Started NuGet You can run the following command to install the Tron.Wallet.Net in your project. PM> Install-Package Tron.Wallet.Net 配置 public reco ......

    uj5u.com 2023-04-14 08:08:00 more
  • DKP 黑客分析——不正確的代幣對比率計算

    概述: 2023 年 2 月 8 日,針對 DKP 協議的閃電貸攻擊導致該協議的用戶損失了 8 萬美元,因為 execute() 函式取決于 USDT-DKP 對中兩種代幣的余額比率。 智能合約黑客概述: 攻擊者的交易:0x0c850f,0x2d31 攻擊者地址:0xF38 利用合同:0xf34ad ......

    uj5u.com 2023-04-07 07:46:09 more
  • Defi開發簡介

    Defi開發簡介 介紹 Defi是去中心化金融的縮寫, 是一項旨在利用區塊鏈技術和智能合約創建更加開放,可訪問和透明的金融體系的運動. 這與傳統金融形成鮮明對比,傳統金融通常由少數大型銀行和金融機構控制 在Defi的世界里,用戶可以直接從他們的電腦或移動設備上訪問廣泛的金融服務,而不需要像銀行或者信 ......

    uj5u.com 2023-04-05 08:01:34 more
  • solidity簡單的ERC20代幣實作

    // SPDX-License-Identifier: GPL-3.0 pragma solidity >=0.7.0 <0.9.0; import "hardhat/console.sol"; //ERC20 同質化代幣,每個代幣的本質或性質都是相同 //ETH 是原生代幣,它不是ERC20代幣, ......

    uj5u.com 2023-03-21 07:56:29 more
  • solidity 參考型別修飾符memory、calldata與storage 常量修飾符C

    在solidity語言中 參考型別修飾符(參考型別為存盤空間不固定的數值型別) memory、calldata與storage,它們只能修飾參考型別變數,比如字串、陣列、位元組等... memory 適用于方法傳參、返參或在方法體內使用,使用完就會清除掉,釋放記憶體 calldata 僅適用于方法傳參 ......

    uj5u.com 2023-03-08 07:57:54 more
  • solidity注解標簽

    在solidity語言中 注釋符為// 注解符為/* 內容*/ 或者 是 ///內容 注解中含有這幾個標簽給予我們使用 @title 一個應該描述合約/介面的標題 contract, library, interface @author 作者的名字 contract, library, interf ......

    uj5u.com 2023-03-08 07:57:49 more
  • 評價指標:相似度、GAS消耗

    【代碼注釋自動生成方法綜述】 這些評測指標主要來自機器翻譯和文本總結等研究領域,可以評估候選文本(即基于代碼注釋自動方法而生成)和參考文本(即基于手工方式而生成)的相似度. BLEU指標^[^?88^^?^]^:其全稱是bilingual evaluation understudy.該指標是最早用于 ......

    uj5u.com 2023-02-23 07:27:39 more
  • 基于NOSTR協議的“公有制”版本的Twitter,去中心化社交軟體Damus

    最近,一個幽靈,Web3的幽靈,在網路游蕩,它叫Damus,這玩意詮釋了什么叫做病毒式營銷,滑稽的是,一個Web3產品卻在Web2的產品鏈上瘋狂傳銷,各方大佬紛紛為其背書,到底發生了什么?Damus的葫蘆里,賣的是什么藥? 注冊和簡單實用 很少有什么產品在用戶注冊環節會有什么噱頭,但Damus確實出 ......

    uj5u.com 2023-02-05 06:48:39 more