繁體中文
English 简体中文 繁體中文
Methodox 首頁

引用

文件會引用它在語言本身之外用到的內容:此發行版的包、NuGet 包、磁碟上的庫、C# 指令碼以及其他文件。引用只是一個名稱,絕不是副本:每次開啟文件時,都會到各引用所在的位置尋找它們。因此,一個資料夾中的文件可以整體移動,而文件也能準確說明它需要什麼。

語言本身(值、迴圈、分支、Return、Function 以及每個文件都具有的其他內容)不需要引用。

文件引用的內容

文件大綱的 References 部分將引用分組列出:NuGet packages、Divooka packages、Assemblies、Documents 和 Scripts。基於工作負載建立的文件一開始就引用該工作負載的包:基於 General Purpose 建立的文件會引用 Standard Library、Graph Editor Essentials 和 Platform。將滑鼠懸停在包上可檢視它提供的內容。

文件引用什麼,就會得到什麼。工具箱托盤、連線的托盤和節點庫提供的節點包括:文件所引用的包中的節點、語言自身的節點、文件自己的圖,以及文件所引用的其他文件的圖,除此之外再無其他。來自文件未引用的包的節點仍然可以開啟、執行和儲存,其工具提示會顯示 Not declared by this document;引用該包後,此提示即消失。

新增引用

按 Ctrl+Shift+L,或按一下大綱 References 部分下的 Add reference…。Add reference 卡片先在 Workloads 下將每個工作負載作為一個整體列出(選擇其中一個即可一次引用它的所有包),然後按類別列出此發行版附帶的每個包,每個包都有一行說明其用途。文件已引用的包會標記為 declared。在輸入框中輸入內容可篩選列表;列表中無法顯示的名稱(NuGet 包、與目前文件相鄰的文件)可以直接輸入完整名稱。選擇一項,然後按一下 Add。

Add reference 卡片:篩選框、各工作負載及其包含的包,以及 DLL、Script、Document 和 NuGet 按鈕

狀態列會顯示新增的內容(例如 Image Processing declared — Ctrl+Z to undo),托盤隨即提供該包的節點。與任何編輯一樣,Ctrl+Z 可以復原引用。

底部的五個按鈕用於新增列表中沒有的內容:

按鈕 新增的內容
DLL 磁碟上的 .NET 庫,在檔案對話方塊中選擇;它提供的內容會成為節點。
Script 文件旁邊的 C# 或 Python 指令碼檔案。C# 指令碼在開啟文件時編譯;指令碼的方法或函式會成為節點。
Document 另一個 Divooka 文件,詳見下文。
NuGet 通過搜尋找到的 nuget.org 上的包。開啟文件時會從 nuget.org 取得它。
Python 已安裝的模組或標準庫中的 Python 模組;它的公共函式會成為節點。

如果某個引用目前在這臺電腦上找不到(例如名稱拼寫錯誤,或此發行版沒有該包),Divooka Compute 會拒絕新增,狀態列會給出提示。開啟文件時則寬鬆一些:已儲存的文件即使引用了這臺電腦所缺少的內容,仍然可以開啟,並附帶一條提示。

要移除引用,請按一下大綱中該引用所在行的叉號並確認。

使用另一個文件的圖

文件是一個型別,以其檔案命名:Maths.dvk 就是型別 Maths。它的 Function 和 Routine 是該型別的方法,因此其他文件引用它之後就可以呼叫這些方法。

  1. 建立一個名為 Maths 的文件,並在其中新增一個 Function Square,將其 Value 與自身相乘;請參閱圖和成員。儲存該文件。
  2. 在要使用它的文件中,按 Ctrl+Shift+L,按一下 Document,然後選擇 Maths.dvk。狀態列顯示 Maths declared — Ctrl+Z to undo,大綱在 Documents 下列出 Maths。
  3. 按 Ctrl+Space 並輸入 Square:它出現在 Document Modules (Maths) 下,旁邊是 Make Maths。
  4. 放置 Square。它首先接受一個 Maths(即呼叫它的例項),然後接受其 Value。放置 Make Maths 並將其輸出連線到 Square 的 Maths,將 Value 設為 9,然後列印結果:無論使用哪種執行模式,結果都是 81。

執行後,Make Maths 連線到 Square 的 Maths 輸入,9 的 Square 連線到一個 Print Line,旁邊是第一個程式

僅作為函式庫的文件不需要例項。在 Maths.dvk 中,按一下大綱中的 Document,在未選中任何內容的情況下,找到 Properties 面板中的 Kind 行:它顯示為 Class。選擇 Static 並儲存。此後,Square 只接受其 Value,不再提供 Make Maths,仍在建立該例項的文件會報告錯誤,直到刪除該節點為止。

被引用的文件是按其相對於引用它的文件的位置來尋找的,因此移動時請將兩者放在一起。如果兩個被引用的文件同名,它們的標題會註明各自的資料夾,例如 Document Modules (Lib/Counter) 和 Document Modules (Other/Counter),它們的節點也一樣。

未宣告任何引用的文件

完全不引用任何包的文件(在 Divooka Explore 中編寫的文件,或較舊的示例)可以使用此發行版附帶的所有節點,其大綱顯示 This document references nothing beyond this distribution. Make references explicit。按一下 Make references explicit,即可一步引用其節點所來自的那些包,Ctrl+Z 可以復原這一步;此後,它與任何其他文件一樣,只提供它所引用的內容。