DolphinDB模塊的復(fù)用教程

本篇內(nèi)容主要講解“DolphinDB模塊的復(fù)用教程”,感興趣的朋友不妨來(lái)看看。本文介紹的方法操作簡(jiǎn)單快捷,實(shí)用性強(qiáng)。下面就讓小編來(lái)帶大家學(xué)習(xí)“DolphinDB模塊的復(fù)用教程”吧!

10多年的潁州網(wǎng)站建設(shè)經(jīng)驗(yàn),針對(duì)設(shè)計(jì)、前端、開發(fā)、售后、文案、推廣等六對(duì)一服務(wù),響應(yīng)快,48小時(shí)及時(shí)工作處理。營(yíng)銷型網(wǎng)站建設(shè)的優(yōu)勢(shì)是能夠根據(jù)用戶設(shè)備顯示端的尺寸不同,自動(dòng)調(diào)整潁州建站的顯示方式,使網(wǎng)站能夠適用不同顯示終端,在瀏覽器中調(diào)整網(wǎng)站的寬度,無(wú)論在任何一種瀏覽器上瀏覽網(wǎng)站,都能展現(xiàn)優(yōu)雅布局與設(shè)計(jì),從而大程度地提升瀏覽體驗(yàn)。創(chuàng)新互聯(lián)建站從事“潁州網(wǎng)站設(shè)計(jì)”,“潁州網(wǎng)站推廣”以來(lái),每個(gè)客戶項(xiàng)目都認(rèn)真落實(shí)執(zhí)行。

1. Module(模塊)介紹

在DolphinDB中,模塊是指只包含函數(shù)定義的代碼包。它具有以下特點(diǎn):

  • 以.dos作為模塊文件的后綴,dos是"dolphindb script"的縮寫

  • 模塊文件保存在DolphinDB節(jié)點(diǎn)的 [home]/modules目錄下

  • 模塊文件第一行以聲明模塊語(yǔ)句module moduleName開頭

  • 模塊文件內(nèi)容僅包含函數(shù)定義


2. 定義模塊

2.1 創(chuàng)建模塊目錄

默認(rèn)情況下,所有的模塊定義在[home]/modules目錄下,[home]由系統(tǒng)配置參數(shù)home決定,可以通過(guò) getHomeDir() 函數(shù)獲取。比如DolphinDB節(jié)點(diǎn)的home目錄為:

/root/DolphinDB/server

那么我們需要在該目錄下創(chuàng)建modules子目錄來(lái)保存模塊文件,最終模塊目錄為:

/home/root/DolphinDB/server/modules


2.2 創(chuàng)建模塊文件

在modules目錄下創(chuàng)建以.dos為后綴的模塊文件,比如FileLog.dos。模塊文件的第一行必須是模塊聲明語(yǔ)句。模塊聲明語(yǔ)句的語(yǔ)法如下:

module moduleName

moduleName必須與模塊文件的名稱一致,比如在FileLog.dos中聲明模塊:

module FileLog

聲明模塊后,我們可以開始編寫模塊代碼。例如,F(xiàn)ileLog.dos的內(nèi)容如下:

module FileLog
//向指定日志文件寫入日志
def appendLog(filePath, logText){
f = file(filePath,"a+")
f.writeLine(string(now()) + " : " + logText)
f.close()
}

在模塊文件中,僅允許封裝函數(shù)定義,其他非函數(shù)定義代碼將被忽略。


3. 導(dǎo)入模塊

在DolphinDB中,使用use關(guān)鍵字來(lái)導(dǎo)入一個(gè)模塊。注意,use關(guān)鍵字導(dǎo)入的模塊是會(huì)話隔離的,僅對(duì)當(dāng)前會(huì)話有效。導(dǎo)入模塊后,我們可以通過(guò)以下兩種方式來(lái)使用模塊內(nèi)的自定義函數(shù):

(1)直接使用模塊中的函數(shù):

use FileLog
appendLog("mylog.txt", "test my log")

(2)通過(guò)完整路徑來(lái)調(diào)用模塊中的函數(shù):

use FileLog
FileLog::appendLog("mylog.txt", "test my log")


4. 規(guī)劃模塊

DolphinDB引入了命名空間的概念,支持對(duì)模塊進(jìn)行分類和規(guī)劃。


4.1 聲明模塊命名空間

如果我們需要對(duì)模塊進(jìn)行分類,可以通過(guò)多級(jí)路徑為規(guī)劃模塊的命名空間。例如,現(xiàn)有兩個(gè)模塊FileLog和DateUtil,它們的存放路徑分別為modules/system/log/FileLog.dos和modules/system/temperal/DateUtil.dos,那么這兩個(gè)模塊相應(yīng)的聲明語(yǔ)句如下:

  • modules/system/log/FileLog.dos

module system::log::FileLog
  • modules/system/temperal/DateUtil.dos

module system::temperal::DateUtil


4.2 調(diào)用命名空間模塊

我們可以在use關(guān)鍵字后加完整路徑來(lái)導(dǎo)入命名空間下的模塊。例如,導(dǎo)入FileLog模塊:

use system::log::FileLog
//全路徑調(diào)用
system::log::FileLog::appendLog("mylog.txt", "test my log")
//直接調(diào)用已導(dǎo)入模塊中的函數(shù)
appendLog("mylog.txt", "test my log")


5. GUI中遠(yuǎn)程調(diào)試模塊

當(dāng)工作機(jī)和DolphinDB服務(wù)器不是同一臺(tái)機(jī)器時(shí),我們?cè)诠ぷ鳈C(jī)上編輯的模塊代碼,不能直接在遠(yuǎn)程服務(wù)器的DolphinDB上通過(guò)use導(dǎo)入,需要先將模塊文件上傳到[home]/modules的對(duì)應(yīng)目錄,才能通過(guò)use調(diào)用模塊。http://www.changhai120.com/

DolphinDB GUI從0.99.2版本開始提供了遠(yuǎn)程同步模塊的功能,具體用法如下圖所示:

DolphinDB模塊的復(fù)用教程

此操作會(huì)將Modules目錄下的所有文件和子目錄同步到GUI連接的DolphinDB節(jié)點(diǎn)的[home]/modules目錄下,同步完成后,就可以在Server上直接執(zhí)行use代碼導(dǎo)入模塊。


6. 注意事項(xiàng)

6.1 同名函數(shù)定義規(guī)則

不同模塊可以定義相同名字的函數(shù)。如果使用全路徑調(diào)用函數(shù),DolphinDB可以通過(guò)模塊命名空間來(lái)區(qū)分函數(shù)名。如果直接調(diào)用函數(shù):

  • 如果已導(dǎo)入的模塊中只有一個(gè)模塊包含該函數(shù),DolphinDB會(huì)調(diào)用該模塊的函數(shù)。

  • 如果已導(dǎo)入的模塊中有多個(gè)模塊包含該函數(shù),DolphinDB解析腳本時(shí)會(huì)以下拋出異常:

Modules [Module1] and [Module2] contain function [functionName]. Please use module name to qualify the function.
  • 如果已導(dǎo)入模塊中與自定義函數(shù)重名,系統(tǒng)會(huì)默認(rèn)使用模塊中的函數(shù)。如果要調(diào)用自定義函數(shù),需要聲明命名空間。自定義函數(shù)和內(nèi)置函數(shù)的默認(rèn)命名空間為根目錄,用兩個(gè)冒號(hào)表示。比如:

//定義模塊
module sys
def myfunc(){
 return 3
}

//自定義函數(shù)
login("admin","123456")
def myfunc(){
 return 1
}
addFunctionView(myfunc)

//調(diào)用
use sys
sys::myfunc() //調(diào)用模塊的函數(shù)
myfunc() //調(diào)用模塊的函數(shù)
::myfunc() //調(diào)用自定義函數(shù)
  • 如果已導(dǎo)入的模塊中不包含該函數(shù),DolphinDB會(huì)在系統(tǒng)內(nèi)置函數(shù)中搜索該函數(shù)。如果內(nèi)置函數(shù)中也沒(méi)有該函數(shù),將拋出函數(shù)為定義的異常。

6.2 刷新模塊定義

在開發(fā)階段調(diào)試模塊代碼時(shí),開發(fā)人員需要反復(fù)修改模塊代碼并刷新定義,此時(shí)可以重新打開模塊文件并全選執(zhí)行模塊代碼即可,這種方法僅對(duì)當(dāng)前會(huì)話有效。


6.3 模塊間互相調(diào)用

模塊之間可以單向引用,比如模塊a 引用 b , b 引用 c。模塊之間不支持交叉引用,比如模塊a 引用 b, 模塊b又引用a。

到此,相信大家對(duì)“DolphinDB模塊的復(fù)用教程”有了更深的了解,不妨來(lái)實(shí)際操作一番吧!這里是創(chuàng)新互聯(lián)網(wǎng)站,更多相關(guān)內(nèi)容可以進(jìn)入相關(guān)頻道進(jìn)行查詢,關(guān)注我們,繼續(xù)學(xué)習(xí)!

本文名稱:DolphinDB模塊的復(fù)用教程
本文路徑:http://bm7419.com/article40/isggho.html

成都網(wǎng)站建設(shè)公司_創(chuàng)新互聯(lián),為您提供小程序開發(fā)網(wǎng)站營(yíng)銷、虛擬主機(jī)App開發(fā)、服務(wù)器托管網(wǎng)頁(yè)設(shè)計(jì)公司

廣告

聲明:本網(wǎng)站發(fā)布的內(nèi)容(圖片、視頻和文字)以用戶投稿、用戶轉(zhuǎn)載內(nèi)容為主,如果涉及侵權(quán)請(qǐng)盡快告知,我們將會(huì)在第一時(shí)間刪除。文章觀點(diǎn)不代表本網(wǎng)站立場(chǎng),如需處理請(qǐng)聯(lián)系客服。電話:028-86922220;郵箱:631063699@qq.com。內(nèi)容未經(jīng)允許不得轉(zhuǎn)載,或轉(zhuǎn)載時(shí)需注明來(lái)源: 創(chuàng)新互聯(lián)

網(wǎng)站托管運(yùn)營(yíng)