執行和主控台
執行
按一下工具列上的 Run(執行),或按 F5 或 Ctrl+E。執行期間,該按鈕顯示為 Stop,按一下 Stop 或按 Shift+F5 即可結束執行。執行屬於它的文件:執行期間切換標籤頁不會中斷執行,關閉文件則會結束執行。
執行的內容取決於圖:
- Flows 圖執行其啟用的節點及其依賴的所有內容,不執行其他節點。
- Function 執行每個節點,從 Input 到 Output。
- 在 Interpreted 模式下,如果目前顯示的是 Routine、Events 圖或狀態機,Run 執行目前顯示的圖;其他情況下,執行文件的入口圖,即大綱中標記為 entry 的圖。
- 在 Compiled 模式下,Run 始終執行入口圖。
執行結束時,狀態列會顯示執行情況,Properties 面板切換到 Run 檢視:顯示 Finished 或 Failed、耗時和所用模式、導致執行停止的問題,以及 Run log(即執行列印的內容)。執行從不更改文件;下一次執行從畫布上的內容開始。
要在解釋執行後以全尺寸檢視某個節點的結果,請選中該節點並按 Alt+Enter,或右鍵按一下它並選擇 Open preview in window:結果會在單獨的視窗中開啟。執行之前沒有可顯示的內容,狀態列會顯示 Run the graph first; there is nothing to preview yet.
兩種執行模式
工具列上的切換開關決定以兩種方式中的哪一種執行文件。每個標籤頁都有自己的設定,文件開啟時為 Interpreted;狀態列會在訊息旁顯示目前模式。將滑鼠懸停在開關的任意一半上,可以看到用幾行文字概括的區別。
| Interpreted | Compiled | |
|---|---|---|
| 執行方式 | 逐個節點遍歷圖 | 先將文件構建為程式,再執行該程式 |
| 速度 | 立即開始;處理繁重任務時較慢 | 構建需要片刻,之後執行快得多 |
| Run 啟動的內容 | 目前顯示的 Routine、Events 圖或狀態機,否則為入口圖 | 始終為入口圖 |
| 畫布上 | 每個已執行的節點都顯示 done,有內容可顯示時還會顯示其結果的預覽;失敗的節點以紅色輪廓標出 | 無:編譯的程式只報告它列印和返回的內容 |
| 狀態列 | 4 nodes in 99 ms | Ran compiled in 361 ms |
| 主控台 | 每一行都註明列印它的節點 | 每一行都註明所屬的執行 |
| 除錯 | 斷點、暫停和單步執行 | 相同,前提是執行中有可以停下的斷點;請參閱除錯 |
| 停止 | 在下一個節點或語句之前停止 | 如果執行中有可以停下的斷點,則在下一條語句之前停止;否則程式無法中斷,其結果在返回時被丟棄 |
構建過程中使用解釋模式,每個節點都會顯示它產生的結果;當執行負擔較重時(長迴圈、大影像、大表格),或者需要檢查程式在編輯器之外執行時的表現時,切換到編譯模式。在編輯器之外,程式預設以編譯方式執行(請參閱匯出程式)。文件、其資料成員及初始值在兩種模式下的行為相同。

啟用的節點
在 Flows 圖上,執行從標記為 Active 的節點開始,只執行它們需要的內容。選中一個節點並按 Space,可將其標記為啟用或取消啟用,也可以使用其 Properties 中的 Active 開關。畫布上方的一行會統計它們(例如 1 active · 4 will run),執行不會涉及的節點會變暗。沒有任何啟用節點時,無論哪種模式,執行都會顯示 Nothing ran (no active nodes)。
快取的結果
較慢的節點(例如載入大檔案或進行渲染的節點)可以在多次解釋執行之間保留其結果。選中該節點並按 Shift+Space,或在其 Properties 中開啟 Cache result:之後的執行會重用它產生的結果,跳過它及其之前的所有節點,直到它所依賴的內容發生變化。狀態列會統計重用的內容,例如 1 node in 5 ms · 10 reused。在解釋執行之後立即開啟此開關,會立即保留該次執行的結果。如果要特意重新計算(例如它讀取的檔案已更改),可將其關閉後再開啟。
主控台
執行列印的內容(Print Line、Print 以及其他任何寫出內容的節點)會輸出到畫布下方的主控台停靠欄。執行只是靜默列印時,停靠欄保持關閉:狀態列會統計行數,計數旁的圓點表示有未讀內容,畫布上方還會出現一條簡短提示。當執行寫入標準錯誤、執行失敗或等待你輸入內容時,停靠欄會自動開啟。
按 Ctrl+`,或按一下狀態列中的行數,即可開啟或關閉主控台。拖動其上邊緣可以調整高度。
Console 標籤頁頂部從左到右依次為:
| 控制元件 | 作用 |
|---|---|
| Follow | 使最新的一行始終可見。 |
| 類別列表 | 顯示 All(所有行),或只顯示執行的 Output、Standard error 或 Run errors(導致執行停止的失敗)。 |
| Filter lines | 只顯示包含所輸入內容的行。按 Esc 清空。 |
| 複製 | 複製目前顯示的行,包括失敗的完整詳細資訊。 |
| 清除 | 清空主控台,直到下一次執行。 |
每一行都帶有列印時間和列印它的物件,前後各有一行,註明執行所屬的文件和模式,以及執行結束的時間。主控台屬於執行,而不是標籤頁:當另一個文件位於前臺時,某個文件的執行暫停或結束,仍會顯示其輸出行。這些行可以選中,並用 Ctrl+C 複製。狀態列本身的訊息也可以複製:按一下它即可。
執行請求輸入時
Read Line 之類的節點會等待一行文字。停靠欄會開啟主控台,並在最後一行下方顯示一個輸入行,狀態列顯示 Waiting for input。輸入內容並按 Enter 傳送。Shift+Enter 開始第二行,每一行依次響應一次讀取。Ctrl+D 結束輸入,Shift+F5 停止執行。