跳轉到內容

AnyLang 程式語言比較/Anylang 通用概念

來自 Wikibooks,開放世界中的開放書籍

AnyLang 通用概念

[編輯 | 編輯原始碼]

以下是 AnyLang 通用概念的中心列表。 這些是跨多個主流程式語言比較和應用的常見程式設計概念。

程式碼塊

block.case_if條件情況語句
block.catchcatch 塊
block.die如何使用錯誤訊息終止程序
block.elseelse 語句
block.else_ifelseif 語句
block.finallyfinally 塊
block.ifif 語句
block.pause如何暫停程序
block.qmark_if三元問號條件 if 語句
block.quit如何終止程序
block.switchswitch 語句
block.trytry 塊
block.try_catch一個簡單的 try-catch 塊

程式碼註釋

codecmmt.beginend一個通用的 begin-end 多行註釋區域
codecmmt.docgendocgen 標籤
codecmmt.multi多行註釋
codecmmt.single單行註釋
codecmmt.xregionmy_generic_region 標籤

除錯操作

codedebug.log將錯誤和程式資訊記錄到日誌檔案
codedebug.test用於除錯或示例的 if 語句

程式碼的基本結構元素

codeelem.block裸程式碼塊
codeelem.end_code結束程式碼
codeelem.init_code初始化程式碼
codeelem.init_lib初始化庫
codeelem.init_vars初始化變數
codeelem.line_contin將換行符放在語句中間的行延續(語言相關)
codeelem.line_termin行終止符(例如分號),對於需要它的語言
codeelem.named_block命名程式碼塊
codeelem.new_doc一個新文件
codeelem.new_footer文件頁面中的新頁尾
codeelem.new_header文件頁面中的新頁首
codeelem.new_lib作為庫模組的新文件(對構成模組的任意定義)
codeelem.new_page文件中的新頁面(對構成頁面的任意定義)
codeelem.new_rec新的記錄條目

迴圈結構

codeloop.arr遍歷陣列
codeloop.dic列舉或遍歷字典中的鍵和值
codeloop.dir遍歷目錄中的專案
codeloop.foreachfor bar in foo
codeloop.whilevar帶有變數的 while 迴圈
codeloop.forvar舊的 c 風格迴圈(for icc=0; icc ~ foo.length; icc++)
codeloop.last迴圈控制最後一次迭代
codeloop.modify_in_place遍歷陣列(或可迭代物件)並就地修改元素
codeloop.next迴圈控制,跳過到下一次迭代
codeloop.rows遍歷 SimpleTable 中的行
codeloop.whilewhile 語句

元資料

codemeta.args傳遞到當前指令碼的命令列引數
codemeta.current_os獲取我們正在執行的當前作業系統
codemeta.docs_class自文件化類
codemeta.docs_func自文件化函式
codemeta.docs_funcparam自文件化函式引數
codemeta.docs_meth自文件化方法
codemeta.docs_methname返回當前正在執行的方法的名稱
codemeta.docs_methparam自文件化方法引數
codemeta.nameismain確定原始檔是否是當前“主”名稱空間 [websearch://"python main trick"]
codemeta.newdoc此語言中新檔案的起始模板
codemeta.quick_docs語言結構的幫助工具
codemeta.source_line當前原始檔中的當前行
codemeta.source_path當前原始檔的完整路徑

當前正在執行的指令碼路徑

codemeta.source_pdir當前原始檔的父目錄。 使用原始檔本身的路徑,而不是透過 *include* 或 *require* 呼叫的檔案的路徑
codemeta.version當前指令碼或語言直譯器的語言版本

原始碼區域

coderegion.detailsxregion 元資料島的工作表
coderegion.file_info檔案資訊元資料島
coderegion.generatorxregion 元資料島的工作表
coderegion.mainxregion 元資料島的工作表
coderegion.see_alsoxregion 元資料島的工作表

控制檯操作

console.print列印到控制檯
console.printf格式化列印到控制檯
console.println列印到控制檯,並換行

資料定義和模式

datadef.aoh就像 perldsc AoH 一樣
datadef.1yamlrec小型 yaml 語法
datadef.2yamlrec中等 yaml 語法
datadef.3yamlrec大型 yaml 語法
datadef.newtable一個新的 ReallySimpleData 表
datadef.newwkbk一個新的 ReallySimpleData wkbk
datadef.newwksheet一個新的 ReallySimpleData 工作表
datadef.nvpSimpleNameValuePair
datadef.simplerecSimpleRecord
datadef.simpletable建立一個類似於 perl AoH 的 SimpleTable 結構
datadef.simpletable_iv建立一個類似於 perl AoA 的 SimpleTable 結構(IV = IndexedValues)
datadef.yamlrecSimpleRecord yaml 語法

資料處理操作

datamunge.json_munge將變數轉儲到 json 並從 json 中載入回來
datamunge.dec_base_64解碼 base64 格式
datamunge.dec_htmlent解碼 HTMLEnt 格式
datamunge.dec_jscript解碼 jscript_url_style 轉義
datamunge.dec_rot_13解碼 rot13 格式
datamunge.enc_base_64編碼 base64 格式
datamunge.enc_htmlent編碼 HTMLEnt 格式
datamunge.enc_jscript編碼 jscript_url_style 轉義
datamunge.enc_rot_13編碼 rot13 格式

日期和時間操作

datetime.2date_fmt指定一個字串,例如“Fri Sep 9 13.46.58 2005”(perl localtime() 在標量上下文中的結果)
datetime.date當前系統日期
datetime.datem指定一個字串,例如 Fri 2005-08-26 13.23.03(首選)
datetime.day_of_week當前系統星期幾
datetime.month當前系統月份
datetime.now當前系統時間和日期
datetime.time_millisec返回帶有毫秒精度的當前時間(用於時間戳)
datetime.year當前系統年份

錯誤捕獲和異常

error.arr_bounds陣列索引超出範圍
error.dict_keyex字典鍵不存在
error.warnings啟用或停用警告

檔案系統操作

filesys.basename從路徑獲取檔名
filesys.copy複製檔案或目錄
filesys.delete刪除檔案或目錄
filesys.deltree刪除目錄樹
filesys.dir_exists如果目錄存在則為 true
filesys.exten從完整路徑獲取副檔名
filesys.file_exists如果檔案存在則為 true
filesys.file_size以整數形式返回檔案大小(通常以位元組為單位)
filesys.loop_dir遍歷目錄中的檔案
filesys.loop_tree遞迴遍歷目錄樹中的檔案
filesys.mkpath建立目錄,即使缺少多個路徑步驟
filesys.move移動檔案或目錄
filesys.parent_dir從完整路徑獲取檔案父目錄
filesys.rename重新命名檔案或目錄

函式引數

funcarg.arg_array指定包含多個引數的陣列
funcarg.arr陣列宣告函式引數
funcarg.boo布林宣告函式引數
funcarg.defval指定函式引數的預設值
funcarg.int整數宣告函式引數
funcarg.obj物件宣告函式引數
funcarg.opt_arg指定可選引數
funcarg.passfunc將函式作為引數傳遞
funcarg.passobj傳遞包含多個引數的物件或字典
funcarg.req_arg指定必需引數
funcarg.str字串宣告函式引數

函式定義

funcdef.1func小型語法宣告函式
funcdef.1meth小型語法宣告 oop_method
funcdef.2func中等語法宣告函式
funcdef.2meth中等語法宣告 oop_method
funcdef.3func大型語法宣告函式
funcdef.3meth大型語法宣告 oop_method
funcdef.closure函式作為完整的閉包
funcdef.funcdefpsu funcdef 模板
funcdef.funcdsp函式 DspTemplate
funcdef.funcmeta將任意元資料附加到函式
funcdef.lambda函式作為 python-lambda 風格表示式

基本 GUI 顯示

guidsp.alertGuiAlert(sPrompt) 帶有確定按鈕的警報框
guidsp.button通用按鈕控制元件
guidsp.checkbox與 html//inputCheckbox 相同的通用複選框控制元件
guidsp.combo_box與 html//Select 相同,但使用者也可以提供一個值
guidsp.date_time一個看起來像單行編輯框的框,但它接受日期和/或時間。 還提供了一個下拉日曆
guidsp.edit與 html//textarea 相同
guidsp.grid網格和列表控制元件
guidsp.group_box矩形邊框/框架
guidsp.hotkey一個看起來像單行編輯框的框,但它接受使用者按下的鍵盤組合
guidsp.input_boxstrVal = GuiInput(sPrompt
guidsp.month_cal一個相對較高的控制元件,以日曆格式顯示一個月的所有日期
guidsp.pass簡單的密碼輸入框,與 html//inputPassword 相同
guidsp.picture一個包含圖片的區域
guidsp.progress進度條
guidsp.radio通用的單選按鈕,與 html//inputRadio 相同
guidsp.range上下箭頭,用於在一定範圍的整數之間切換
guidsp.rich_edit帶格式的富文字框
guidsp.select與 html//Select 相同
guidsp.select_multi與 html//Select with multiple='true' 相同
guidsp.slider一個滑動條,使用者可以在垂直或水平軌道上移動
guidsp.tab包含多個頁面的控制元件
guidsp.text簡單的文字輸入框,與 html//inputText 相同

GUI 視窗

guiwin.center將視窗相對於桌面(或父視窗)居中
guiwin.coords指定視窗相對於桌面(或父視窗)的位置

互操作性

interop.alt_interop互操作的不同替代方案
interop.com_object如何例項化 msft OLE COM 物件
interop.shell_run執行外部程式,例如 ShellRun('notepad.exe') 作為獨立程序
interop.shell_runwait執行外部程式並等待其完成

程式碼庫和附加元件

lib.include_lib包含庫檔案
lib.include_once僅包含庫檔案一次

OOP 類

oopclass.class_constructor類的建構函式方法
oopclass.new_class一個新的 OOP 類
oopclass.reflect_classname從類本身獲取類的名稱

OOP 方法

oopmeth.alias為 oop 方法建立別名
oopmeth.filter根據任何條件迭代透過類的所有選定方法的名稱
oopmeth.instance在類中宣告一個例項方法
oopmeth.invokeoperator用作方法呼叫運算子的符號
oopmeth.multilevel宣告和使用巢狀方法(例如,mymap.delaware.dover.getpopulation())
oopmeth.reflect迭代透過類的所有方法的名稱
oopmeth.static在類中宣告一個靜態方法
oopmeth.symbolic使用標量作為方法名稱呼叫 oop 方法

OOP 物件

oopobj.new_instance一個新的 OOP 普通物件。 建立一個物件(也稱為類的例項)。

OOP 引用

oopref.symbolic使用標量作為類名(不使用字串 eval)從 oop 類例項化物件
regex.22_notation指定單個字元 char 的符號
regex.backrefRegEx 在匹配區域或替換區域內記憶捕獲暫存器
regex.basic_syntaxRegEx 基本語法 basic_ops
regex.capture指定一個捕獲匹配暫存器
regex.matchRegEx 匹配操作
regex.noncapture指定一個非捕獲分組匹配暫存器
regex.replaceRegEx 替換操作
sqldata.bulk_insert使用文字檔案作為原始資料填充 SQL 表

格式化和在原始碼中使用字串

strdsp.esc_bs1注意 regex22 更好
strdsp.esc_bs2注意 regex22 更好
strdsp.esc_qq1注意 regex22 更好
strdsp.esc_qq2注意 regex22 更好
strdsp.here_doc像 perl heredoc 一樣在程式碼中指定多行字串
strdsp.here_funcheredoc 函式
strdsp.here_str字串在變數中
strdsp.here_var字串中的插值變數
strdsp.heredoc_indentheredoc 與程式碼的其餘部分一起縮排
strdsp.interpo指定一個可能包含插值的字串變數
strdsp.number_format為區域設定或資料顯示美化格式化數字
strdsp.printf指定一個具有特殊格式選項的字串變數
strdsp.skeleton_fill填寫 SimpleTemplate 的內容
strdsp.verbatim指定一個不包含插值的字串變數

保留供日後使用

system.timeout如果程序花費的時間過長,則丟擲異常或終止程序

模板

template.delim指定模板分隔符的語法
template.valueof模板樣式程式設計的輸出值

資料驗證

valid.file_exist如果檔案存在於檔案系統中,則為真
valid.file_not_exist如果檔案不存在於檔案系統中,則為真
valid.is_numeric表示式計算結果為數字
valid.is_string表示式計算結果為字串
valid.is_true表示式計算結果為真值

變數宣告

vardec.myarr快速宣告陣列
vardec.myboo快速宣告布林值
vardec.mydic快速宣告字典
vardec.myint快速宣告整數
vardec.myobj快速宣告物件
vardec.mystr快速宣告字串
vardec.null在原始碼中表示一個空值

使用變數

varops.array_assign將值分配給陣列
varops.array_decl宣告陣列
varops.array_init初始化陣列
varops.composite_defn定義一個複合變數(例如,像 perl 資料結構食譜一樣)
varops.composite_manip操作一個複合變數(例如排序、搜尋過濾檢視新增編輯刪除)
varops.dumper像 perl DataDumper 一樣轉儲變數內容
varops.object_assign將值分配給物件
varops.object_decl宣告物件
varops.object_dupe_byref淺複製並透過引用複製一個物件或巢狀變數
varops.object_dupe_byval透過值複製並複製一個物件或巢狀變數
varops.object_init初始化物件
varops.scalar_assign將值分配給標量
varops.scalar_decl宣告一個標量
varops.scalar_init初始化一個標量
varops.typecast將變數的本機型別轉換為另一種型別
varops.vartype獲取變數的本機型別

Web 和 HTTP

webhttp.htinclude轉clusion 將一個頁面或頁面片段包含到另一個頁面中
webhttp.cflocation像 coldfusion cflocation 一樣重定向到新頁面
webhttp.cgi_referrer客戶端引用 URL
webhttp.cgi_remoteaddr客戶端 IP 地址
webhttp.server_get使用伺服器端程式碼從另一個站點獲取網頁
華夏公益教科書