API Basic Concatenation zh tw - LIHACHTETAN/ClassicUO-BadNewbie-BasicIDE GitHub Wiki

String + / &

ClassicUO • Basic

以 + 或 Basic 相容寫法 & 串接文字。將數量、座標等數字加入訊息前,請先用 CStr 明確轉換。

完整語法

leftText + rightText
leftText & rightText
"label" & CStr(number)

參數

  • leftText — 左側文字:常值、String 變數或已轉成文字的函式結果。
  • rightText — 右側文字。CStr(number) 轉換數字,CStr(Unit) 得到空字串。空格、冒號等分隔符號需自行提供。

傳回值

兩個運算元都是 String 時傳回 String,不是成功旗標。本引擎將 & 正規化為 + 並沿用其規則:兩個數字會相加,2 & 3 得到 Integer 5。混合 String 與數字會出錯,與 VB 隱含文字轉換不同。

行為

  • 兩側依順序計算並串接,連續串接由左至右。數值運算請加括號,先轉換結果再串接。
  • 不會自動插入分隔符號、空格、引號或換行。字串常值內的 & 保持原樣。邏輯權杖 && 仍為 AND,不會串接文字。
  • CStr 以不受客戶端語言影響的格式輸出數字,小數使用句點。轉換與串接本身不列印或傳送訊息;有需要時再將結果 String 傳入 API。
  • 字串不可變更,串接會建立新值而不修改來源變數。持續擴增大字串會複製內容;請只建立需要的輸出,避免每次迴圈都重建整份報告。

範例

1. 數量加上標籤

# amount=50 是 Integer,CStr(amount) 產生 "50"。"Items: " 包含冒號與尾端空格。Main 傳回 "Items: 50",不會自動列印。
Option Explicit On
SUB Main()
    VAR amount = 50
    RETURN "Items: " & CStr(amount)
END SUB

參數與執行說明:

amount=50 是 Integer,CStr(amount) 產生 "50"。"Items: " 包含冒號與尾端空格。Main 傳回 "Items: 50",不會自動列印。

2. 完整可重用格式函式

# Label 接收 name="ore"、amount=3,串接名稱、明確提供的冒號與 CStr(amount)。完整函式將 "ore:3" 傳回 Main,也可用於其他名稱和數量。
Option Explicit On
FUNCTION Label(name, amount)
    RETURN name + ":" + CStr(amount)
END FUNCTION
SUB Main()
    RETURN Label("ore", 3)
END SUB

參數與執行說明:

Label 接收 name="ore"、amount=3,串接名稱、明確提供的冒號與 CStr(amount)。完整函式將 "ore:3" 傳回 Main,也可用於其他名稱和數量。

3. 先計算再串接

# CStr(2+3) 先算出 5,再轉成 "5"。第二個常值保留分號、空格和 A&B。Main 傳回 "Total: 5; literal: A&B"。
Option Explicit On
SUB Main()
    RETURN "Total: " & CStr(2 + 3) & "; literal: A&B"
END SUB

參數與執行說明:

CStr(2+3) 先算出 5,再轉成 "5"。第二個常值保留分號、空格和 A&B。Main 傳回 "Total: 5; literal: A&B"。


en · ru · uk · fr · de · it · es · zh-tw · ja · ko

Basic