mirror of
https://github.com/Leonmmcoset/CMLeonOS.git
synced 2026-03-03 15:30:27 +00:00
docs&Lua input()
This commit is contained in:
1
docs/cmleonos/.gitignore
vendored
Normal file
1
docs/cmleonos/.gitignore
vendored
Normal file
@@ -0,0 +1 @@
|
||||
node_modules/
|
||||
4505
docs/cmleonos/docs/.vuepress/.cache/deps/@vue_devtools-api.js
Normal file
4505
docs/cmleonos/docs/.vuepress/.cache/deps/@vue_devtools-api.js
Normal file
File diff suppressed because it is too large
Load Diff
File diff suppressed because one or more lines are too long
136
docs/cmleonos/docs/.vuepress/.cache/deps/@vuepress_shared.js
Normal file
136
docs/cmleonos/docs/.vuepress/.cache/deps/@vuepress_shared.js
Normal file
@@ -0,0 +1,136 @@
|
||||
// node_modules/.pnpm/@vuepress+shared@2.0.0-rc.20/node_modules/@vuepress/shared/dist/index.js
|
||||
var isLinkWithProtocol = (link) => /^[a-z][a-z0-9+.-]*:/.test(link) || link.startsWith("//");
|
||||
var markdownLinkRegexp = /.md((\?|#).*)?$/;
|
||||
var isLinkExternal = (link, base = "/") => isLinkWithProtocol(link) || // absolute link that does not start with `base` and does not end with `.md`
|
||||
link.startsWith("/") && !link.startsWith(base) && !markdownLinkRegexp.test(link);
|
||||
var isLinkHttp = (link) => /^(https?:)?\/\//.test(link);
|
||||
var inferRoutePath = (rawPath) => {
|
||||
if (!rawPath || rawPath.endsWith("/")) return rawPath;
|
||||
let routePath = rawPath.replace(/(^|\/)README.md$/i, "$1index.html");
|
||||
if (routePath.endsWith(".md")) {
|
||||
routePath = `${routePath.substring(0, routePath.length - 3)}.html`;
|
||||
} else if (!routePath.endsWith(".html")) {
|
||||
routePath = `${routePath}.html`;
|
||||
}
|
||||
if (routePath.endsWith("/index.html")) {
|
||||
routePath = routePath.substring(0, routePath.length - 10);
|
||||
}
|
||||
return routePath;
|
||||
};
|
||||
var FAKE_HOST = "http://.";
|
||||
var normalizeRoutePath = (pathname, current) => {
|
||||
if (!pathname.startsWith("/") && current) {
|
||||
const loc = current.slice(0, current.lastIndexOf("/"));
|
||||
return inferRoutePath(new URL(`${loc}/${pathname}`, FAKE_HOST).pathname);
|
||||
}
|
||||
return inferRoutePath(pathname);
|
||||
};
|
||||
var resolveLocalePath = (locales, routePath) => {
|
||||
const localePaths = Object.keys(locales).sort((a, b) => {
|
||||
const levelDelta = b.split("/").length - a.split("/").length;
|
||||
if (levelDelta !== 0) {
|
||||
return levelDelta;
|
||||
}
|
||||
return b.length - a.length;
|
||||
});
|
||||
for (const localePath of localePaths) {
|
||||
if (routePath.startsWith(localePath)) {
|
||||
return localePath;
|
||||
}
|
||||
}
|
||||
return "/";
|
||||
};
|
||||
var resolveRoutePathFromUrl = (url, base = "/") => {
|
||||
const pathname = url.replace(/^(?:https?:)?\/\/[^/]*/, "");
|
||||
return pathname.startsWith(base) ? `/${pathname.slice(base.length)}` : pathname;
|
||||
};
|
||||
var SPLIT_CHAR_REGEXP = /(#|\?)/;
|
||||
var splitPath = (path) => {
|
||||
const [pathname, ...hashAndQueries] = path.split(SPLIT_CHAR_REGEXP);
|
||||
return {
|
||||
pathname,
|
||||
hashAndQueries: hashAndQueries.join("")
|
||||
};
|
||||
};
|
||||
var TAGS_ALLOWED = ["link", "meta", "script", "style", "noscript", "template"];
|
||||
var TAGS_UNIQUE = ["title", "base"];
|
||||
var resolveHeadIdentifier = ([tag, attrs, content]) => {
|
||||
if (TAGS_UNIQUE.includes(tag)) {
|
||||
return tag;
|
||||
}
|
||||
if (!TAGS_ALLOWED.includes(tag)) {
|
||||
return null;
|
||||
}
|
||||
if (tag === "meta" && attrs.name) {
|
||||
return `${tag}.${attrs.name}`;
|
||||
}
|
||||
if (tag === "template" && attrs.id) {
|
||||
return `${tag}.${attrs.id}`;
|
||||
}
|
||||
return JSON.stringify([
|
||||
tag,
|
||||
Object.entries(attrs).map(([key, value]) => {
|
||||
if (typeof value === "boolean") {
|
||||
return value ? [key, ""] : null;
|
||||
}
|
||||
return [key, value];
|
||||
}).filter((item) => item != null).sort(([keyA], [keyB]) => keyA.localeCompare(keyB)),
|
||||
content
|
||||
]);
|
||||
};
|
||||
var dedupeHead = (head) => {
|
||||
const identifierSet = /* @__PURE__ */ new Set();
|
||||
const result = [];
|
||||
head.forEach((item) => {
|
||||
const identifier = resolveHeadIdentifier(item);
|
||||
if (identifier && !identifierSet.has(identifier)) {
|
||||
identifierSet.add(identifier);
|
||||
result.push(item);
|
||||
}
|
||||
});
|
||||
return result;
|
||||
};
|
||||
var ensureLeadingSlash = (str) => str.startsWith("/") ? str : `/${str}`;
|
||||
var ensureEndingSlash = (str) => str.endsWith("/") || str.endsWith(".html") ? str : `${str}/`;
|
||||
var formatDateString = (str, defaultDateString = "") => {
|
||||
const dateMatch = str.match(/\b(\d{4})-(\d{1,2})-(\d{1,2})\b/);
|
||||
if (dateMatch === null) {
|
||||
return defaultDateString;
|
||||
}
|
||||
const [, yearStr, monthStr, dayStr] = dateMatch;
|
||||
return [yearStr, monthStr.padStart(2, "0"), dayStr.padStart(2, "0")].join("-");
|
||||
};
|
||||
var omit = (obj, ...keys) => {
|
||||
const result = { ...obj };
|
||||
for (const key of keys) {
|
||||
delete result[key];
|
||||
}
|
||||
return result;
|
||||
};
|
||||
var removeEndingSlash = (str) => str.endsWith("/") ? str.slice(0, -1) : str;
|
||||
var removeLeadingSlash = (str) => str.startsWith("/") ? str.slice(1) : str;
|
||||
var isFunction = (val) => typeof val === "function";
|
||||
var isPlainObject = (val) => Object.prototype.toString.call(val) === "[object Object]";
|
||||
var isString = (val) => typeof val === "string";
|
||||
export {
|
||||
dedupeHead,
|
||||
ensureEndingSlash,
|
||||
ensureLeadingSlash,
|
||||
formatDateString,
|
||||
inferRoutePath,
|
||||
isFunction,
|
||||
isLinkExternal,
|
||||
isLinkHttp,
|
||||
isLinkWithProtocol,
|
||||
isPlainObject,
|
||||
isString,
|
||||
normalizeRoutePath,
|
||||
omit,
|
||||
removeEndingSlash,
|
||||
removeLeadingSlash,
|
||||
resolveHeadIdentifier,
|
||||
resolveLocalePath,
|
||||
resolveRoutePathFromUrl,
|
||||
splitPath
|
||||
};
|
||||
//# sourceMappingURL=@vuepress_shared.js.map
|
||||
File diff suppressed because one or more lines are too long
37
docs/cmleonos/docs/.vuepress/.cache/deps/_metadata.json
Normal file
37
docs/cmleonos/docs/.vuepress/.cache/deps/_metadata.json
Normal file
@@ -0,0 +1,37 @@
|
||||
{
|
||||
"hash": "b2d8ea98",
|
||||
"configHash": "430a1927",
|
||||
"lockfileHash": "2b714391",
|
||||
"browserHash": "d22a0b3e",
|
||||
"optimized": {
|
||||
"@vue/devtools-api": {
|
||||
"src": "../../../../node_modules/.pnpm/@vue+devtools-api@7.7.9/node_modules/@vue/devtools-api/dist/index.js",
|
||||
"file": "@vue_devtools-api.js",
|
||||
"fileHash": "8d22f0e2",
|
||||
"needsInterop": false
|
||||
},
|
||||
"@vuepress/shared": {
|
||||
"src": "../../../../node_modules/.pnpm/@vuepress+shared@2.0.0-rc.20/node_modules/@vuepress/shared/dist/index.js",
|
||||
"file": "@vuepress_shared.js",
|
||||
"fileHash": "8ed39465",
|
||||
"needsInterop": false
|
||||
},
|
||||
"vue": {
|
||||
"src": "../../../../node_modules/.pnpm/vue@3.5.27/node_modules/vue/dist/vue.runtime.esm-bundler.js",
|
||||
"file": "vue.js",
|
||||
"fileHash": "13cc40f5",
|
||||
"needsInterop": false
|
||||
},
|
||||
"vue-router": {
|
||||
"src": "../../../../node_modules/.pnpm/vue-router@4.6.4_vue@3.5.27/node_modules/vue-router/dist/vue-router.esm-bundler.js",
|
||||
"file": "vue-router.js",
|
||||
"fileHash": "8f174c5b",
|
||||
"needsInterop": false
|
||||
}
|
||||
},
|
||||
"chunks": {
|
||||
"chunk-OARA6QKZ": {
|
||||
"file": "chunk-OARA6QKZ.js"
|
||||
}
|
||||
}
|
||||
}
|
||||
12824
docs/cmleonos/docs/.vuepress/.cache/deps/chunk-OARA6QKZ.js
Normal file
12824
docs/cmleonos/docs/.vuepress/.cache/deps/chunk-OARA6QKZ.js
Normal file
File diff suppressed because it is too large
Load Diff
File diff suppressed because one or more lines are too long
3
docs/cmleonos/docs/.vuepress/.cache/deps/package.json
Normal file
3
docs/cmleonos/docs/.vuepress/.cache/deps/package.json
Normal file
@@ -0,0 +1,3 @@
|
||||
{
|
||||
"type": "module"
|
||||
}
|
||||
2404
docs/cmleonos/docs/.vuepress/.cache/deps/vue-router.js
Normal file
2404
docs/cmleonos/docs/.vuepress/.cache/deps/vue-router.js
Normal file
File diff suppressed because it is too large
Load Diff
File diff suppressed because one or more lines are too long
346
docs/cmleonos/docs/.vuepress/.cache/deps/vue.js
Normal file
346
docs/cmleonos/docs/.vuepress/.cache/deps/vue.js
Normal file
@@ -0,0 +1,346 @@
|
||||
import {
|
||||
BaseTransition,
|
||||
BaseTransitionPropsValidators,
|
||||
Comment,
|
||||
DeprecationTypes,
|
||||
EffectScope,
|
||||
ErrorCodes,
|
||||
ErrorTypeStrings,
|
||||
Fragment,
|
||||
KeepAlive,
|
||||
ReactiveEffect,
|
||||
Static,
|
||||
Suspense,
|
||||
Teleport,
|
||||
Text,
|
||||
TrackOpTypes,
|
||||
Transition,
|
||||
TransitionGroup,
|
||||
TriggerOpTypes,
|
||||
VueElement,
|
||||
assertNumber,
|
||||
callWithAsyncErrorHandling,
|
||||
callWithErrorHandling,
|
||||
camelize,
|
||||
capitalize,
|
||||
cloneVNode,
|
||||
compatUtils,
|
||||
compile,
|
||||
computed,
|
||||
createApp,
|
||||
createBaseVNode,
|
||||
createBlock,
|
||||
createCommentVNode,
|
||||
createElementBlock,
|
||||
createHydrationRenderer,
|
||||
createPropsRestProxy,
|
||||
createRenderer,
|
||||
createSSRApp,
|
||||
createSlots,
|
||||
createStaticVNode,
|
||||
createTextVNode,
|
||||
createVNode,
|
||||
customRef,
|
||||
defineAsyncComponent,
|
||||
defineComponent,
|
||||
defineCustomElement,
|
||||
defineEmits,
|
||||
defineExpose,
|
||||
defineModel,
|
||||
defineOptions,
|
||||
defineProps,
|
||||
defineSSRCustomElement,
|
||||
defineSlots,
|
||||
devtools,
|
||||
effect,
|
||||
effectScope,
|
||||
getCurrentInstance,
|
||||
getCurrentScope,
|
||||
getCurrentWatcher,
|
||||
getTransitionRawChildren,
|
||||
guardReactiveProps,
|
||||
h,
|
||||
handleError,
|
||||
hasInjectionContext,
|
||||
hydrate,
|
||||
hydrateOnIdle,
|
||||
hydrateOnInteraction,
|
||||
hydrateOnMediaQuery,
|
||||
hydrateOnVisible,
|
||||
initCustomFormatter,
|
||||
initDirectivesForSSR,
|
||||
inject,
|
||||
isMemoSame,
|
||||
isProxy,
|
||||
isReactive,
|
||||
isReadonly,
|
||||
isRef,
|
||||
isRuntimeOnly,
|
||||
isShallow,
|
||||
isVNode,
|
||||
markRaw,
|
||||
mergeDefaults,
|
||||
mergeModels,
|
||||
mergeProps,
|
||||
nextTick,
|
||||
nodeOps,
|
||||
normalizeClass,
|
||||
normalizeProps,
|
||||
normalizeStyle,
|
||||
onActivated,
|
||||
onBeforeMount,
|
||||
onBeforeUnmount,
|
||||
onBeforeUpdate,
|
||||
onDeactivated,
|
||||
onErrorCaptured,
|
||||
onMounted,
|
||||
onRenderTracked,
|
||||
onRenderTriggered,
|
||||
onScopeDispose,
|
||||
onServerPrefetch,
|
||||
onUnmounted,
|
||||
onUpdated,
|
||||
onWatcherCleanup,
|
||||
openBlock,
|
||||
patchProp,
|
||||
popScopeId,
|
||||
provide,
|
||||
proxyRefs,
|
||||
pushScopeId,
|
||||
queuePostFlushCb,
|
||||
reactive,
|
||||
readonly,
|
||||
ref,
|
||||
registerRuntimeCompiler,
|
||||
render,
|
||||
renderList,
|
||||
renderSlot,
|
||||
resolveComponent,
|
||||
resolveDirective,
|
||||
resolveDynamicComponent,
|
||||
resolveFilter,
|
||||
resolveTransitionHooks,
|
||||
setBlockTracking,
|
||||
setDevtoolsHook,
|
||||
setTransitionHooks,
|
||||
shallowReactive,
|
||||
shallowReadonly,
|
||||
shallowRef,
|
||||
ssrContextKey,
|
||||
ssrUtils,
|
||||
stop,
|
||||
toDisplayString,
|
||||
toHandlerKey,
|
||||
toHandlers,
|
||||
toRaw,
|
||||
toRef,
|
||||
toRefs,
|
||||
toValue,
|
||||
transformVNodeArgs,
|
||||
triggerRef,
|
||||
unref,
|
||||
useAttrs,
|
||||
useCssModule,
|
||||
useCssVars,
|
||||
useHost,
|
||||
useId,
|
||||
useModel,
|
||||
useSSRContext,
|
||||
useShadowRoot,
|
||||
useSlots,
|
||||
useTemplateRef,
|
||||
useTransitionState,
|
||||
vModelCheckbox,
|
||||
vModelDynamic,
|
||||
vModelRadio,
|
||||
vModelSelect,
|
||||
vModelText,
|
||||
vShow,
|
||||
version,
|
||||
warn,
|
||||
watch,
|
||||
watchEffect,
|
||||
watchPostEffect,
|
||||
watchSyncEffect,
|
||||
withAsyncContext,
|
||||
withCtx,
|
||||
withDefaults,
|
||||
withDirectives,
|
||||
withKeys,
|
||||
withMemo,
|
||||
withModifiers,
|
||||
withScopeId
|
||||
} from "./chunk-OARA6QKZ.js";
|
||||
export {
|
||||
BaseTransition,
|
||||
BaseTransitionPropsValidators,
|
||||
Comment,
|
||||
DeprecationTypes,
|
||||
EffectScope,
|
||||
ErrorCodes,
|
||||
ErrorTypeStrings,
|
||||
Fragment,
|
||||
KeepAlive,
|
||||
ReactiveEffect,
|
||||
Static,
|
||||
Suspense,
|
||||
Teleport,
|
||||
Text,
|
||||
TrackOpTypes,
|
||||
Transition,
|
||||
TransitionGroup,
|
||||
TriggerOpTypes,
|
||||
VueElement,
|
||||
assertNumber,
|
||||
callWithAsyncErrorHandling,
|
||||
callWithErrorHandling,
|
||||
camelize,
|
||||
capitalize,
|
||||
cloneVNode,
|
||||
compatUtils,
|
||||
compile,
|
||||
computed,
|
||||
createApp,
|
||||
createBlock,
|
||||
createCommentVNode,
|
||||
createElementBlock,
|
||||
createBaseVNode as createElementVNode,
|
||||
createHydrationRenderer,
|
||||
createPropsRestProxy,
|
||||
createRenderer,
|
||||
createSSRApp,
|
||||
createSlots,
|
||||
createStaticVNode,
|
||||
createTextVNode,
|
||||
createVNode,
|
||||
customRef,
|
||||
defineAsyncComponent,
|
||||
defineComponent,
|
||||
defineCustomElement,
|
||||
defineEmits,
|
||||
defineExpose,
|
||||
defineModel,
|
||||
defineOptions,
|
||||
defineProps,
|
||||
defineSSRCustomElement,
|
||||
defineSlots,
|
||||
devtools,
|
||||
effect,
|
||||
effectScope,
|
||||
getCurrentInstance,
|
||||
getCurrentScope,
|
||||
getCurrentWatcher,
|
||||
getTransitionRawChildren,
|
||||
guardReactiveProps,
|
||||
h,
|
||||
handleError,
|
||||
hasInjectionContext,
|
||||
hydrate,
|
||||
hydrateOnIdle,
|
||||
hydrateOnInteraction,
|
||||
hydrateOnMediaQuery,
|
||||
hydrateOnVisible,
|
||||
initCustomFormatter,
|
||||
initDirectivesForSSR,
|
||||
inject,
|
||||
isMemoSame,
|
||||
isProxy,
|
||||
isReactive,
|
||||
isReadonly,
|
||||
isRef,
|
||||
isRuntimeOnly,
|
||||
isShallow,
|
||||
isVNode,
|
||||
markRaw,
|
||||
mergeDefaults,
|
||||
mergeModels,
|
||||
mergeProps,
|
||||
nextTick,
|
||||
nodeOps,
|
||||
normalizeClass,
|
||||
normalizeProps,
|
||||
normalizeStyle,
|
||||
onActivated,
|
||||
onBeforeMount,
|
||||
onBeforeUnmount,
|
||||
onBeforeUpdate,
|
||||
onDeactivated,
|
||||
onErrorCaptured,
|
||||
onMounted,
|
||||
onRenderTracked,
|
||||
onRenderTriggered,
|
||||
onScopeDispose,
|
||||
onServerPrefetch,
|
||||
onUnmounted,
|
||||
onUpdated,
|
||||
onWatcherCleanup,
|
||||
openBlock,
|
||||
patchProp,
|
||||
popScopeId,
|
||||
provide,
|
||||
proxyRefs,
|
||||
pushScopeId,
|
||||
queuePostFlushCb,
|
||||
reactive,
|
||||
readonly,
|
||||
ref,
|
||||
registerRuntimeCompiler,
|
||||
render,
|
||||
renderList,
|
||||
renderSlot,
|
||||
resolveComponent,
|
||||
resolveDirective,
|
||||
resolveDynamicComponent,
|
||||
resolveFilter,
|
||||
resolveTransitionHooks,
|
||||
setBlockTracking,
|
||||
setDevtoolsHook,
|
||||
setTransitionHooks,
|
||||
shallowReactive,
|
||||
shallowReadonly,
|
||||
shallowRef,
|
||||
ssrContextKey,
|
||||
ssrUtils,
|
||||
stop,
|
||||
toDisplayString,
|
||||
toHandlerKey,
|
||||
toHandlers,
|
||||
toRaw,
|
||||
toRef,
|
||||
toRefs,
|
||||
toValue,
|
||||
transformVNodeArgs,
|
||||
triggerRef,
|
||||
unref,
|
||||
useAttrs,
|
||||
useCssModule,
|
||||
useCssVars,
|
||||
useHost,
|
||||
useId,
|
||||
useModel,
|
||||
useSSRContext,
|
||||
useShadowRoot,
|
||||
useSlots,
|
||||
useTemplateRef,
|
||||
useTransitionState,
|
||||
vModelCheckbox,
|
||||
vModelDynamic,
|
||||
vModelRadio,
|
||||
vModelSelect,
|
||||
vModelText,
|
||||
vShow,
|
||||
version,
|
||||
warn,
|
||||
watch,
|
||||
watchEffect,
|
||||
watchPostEffect,
|
||||
watchSyncEffect,
|
||||
withAsyncContext,
|
||||
withCtx,
|
||||
withDefaults,
|
||||
withDirectives,
|
||||
withKeys,
|
||||
withMemo,
|
||||
withModifiers,
|
||||
withScopeId
|
||||
};
|
||||
7
docs/cmleonos/docs/.vuepress/.cache/deps/vue.js.map
Normal file
7
docs/cmleonos/docs/.vuepress/.cache/deps/vue.js.map
Normal file
@@ -0,0 +1,7 @@
|
||||
{
|
||||
"version": 3,
|
||||
"sources": [],
|
||||
"sourcesContent": [],
|
||||
"mappings": "",
|
||||
"names": []
|
||||
}
|
||||
19
docs/cmleonos/docs/.vuepress/config.js
Normal file
19
docs/cmleonos/docs/.vuepress/config.js
Normal file
@@ -0,0 +1,19 @@
|
||||
import { defaultTheme } from '@vuepress/theme-default'
|
||||
import { defineUserConfig } from 'vuepress'
|
||||
import { viteBundler } from '@vuepress/bundler-vite'
|
||||
|
||||
export default defineUserConfig({
|
||||
lang: 'zh-CN',
|
||||
|
||||
title: 'CMLeonOS官方文档站',
|
||||
description: 'CMLeonOS是一个基于微内核架构的操作系统,它的目标是提供一个简单、可靠、安全的操作系统环境。',
|
||||
|
||||
theme: defaultTheme({
|
||||
// logo: 'https://vuejs.press/images/hero.png',
|
||||
navbar: ['/', '/get-started', '/lua'],
|
||||
}),
|
||||
|
||||
|
||||
|
||||
bundler: viteBundler(),
|
||||
})
|
||||
43
docs/cmleonos/docs/.vuepress/dist/404.html
vendored
Normal file
43
docs/cmleonos/docs/.vuepress/dist/404.html
vendored
Normal file
@@ -0,0 +1,43 @@
|
||||
<!doctype html>
|
||||
<html lang="zh-CN">
|
||||
<head>
|
||||
<meta charset="utf-8" />
|
||||
<meta name="viewport" content="width=device-width,initial-scale=1" />
|
||||
<meta name="generator" content="VuePress 2.0.0-rc.20" />
|
||||
<style>
|
||||
:root {
|
||||
--vp-c-bg: #fff;
|
||||
}
|
||||
|
||||
[data-theme='dark'] {
|
||||
--vp-c-bg: #1b1b1f;
|
||||
}
|
||||
|
||||
html,
|
||||
body {
|
||||
background-color: var(--vp-c-bg);
|
||||
}
|
||||
</style>
|
||||
<script>
|
||||
const useChoice = localStorage.getItem('vuepress-color-scheme')
|
||||
const systemStatus =
|
||||
'matchMedia' in window
|
||||
? window.matchMedia('(prefers-color-scheme: dark)').matches
|
||||
: false
|
||||
|
||||
if (useChoice === 'light') {
|
||||
document.documentElement.dataset.theme = 'light'
|
||||
} else if (useChoice === 'dark' || systemStatus) {
|
||||
document.documentElement.dataset.theme = 'dark'
|
||||
}
|
||||
</script>
|
||||
<title>CMLeonOS官方文档站</title><meta name="description" content="CMLeonOS是一个基于微内核架构的操作系统,它的目标是提供一个简单、可靠、安全的操作系统环境。">
|
||||
<link rel="preload" href="/assets/style-BmL0kmLr.css" as="style"><link rel="stylesheet" href="/assets/style-BmL0kmLr.css">
|
||||
<link rel="modulepreload" href="/assets/app-DPqZ-Olm.js"><link rel="modulepreload" href="/assets/404.html-quW2M2uK.js">
|
||||
<link rel="prefetch" href="/assets/get-started.html-CZESuujR.js" as="script"><link rel="prefetch" href="/assets/lua.html-CwfoAtde.js" as="script"><link rel="prefetch" href="/assets/index.html-C2W3YGc4.js" as="script">
|
||||
</head>
|
||||
<body>
|
||||
<div id="app"><!--[--><div class="vp-theme-container" vp-container data-v-d32690b4><main class="page" data-v-d32690b4><div vp-content data-v-d32690b4><h1 data-v-d32690b4>404</h1><blockquote data-v-d32690b4>How did we get here?</blockquote><a class="route-link" href="/" data-v-d32690b4>Take me home</a></div></main></div><!--[--><!----><!--]--><!--]--></div>
|
||||
<script type="module" src="/assets/app-DPqZ-Olm.js" defer></script>
|
||||
</body>
|
||||
</html>
|
||||
1
docs/cmleonos/docs/.vuepress/dist/assets/404.html-quW2M2uK.js
vendored
Normal file
1
docs/cmleonos/docs/.vuepress/dist/assets/404.html-quW2M2uK.js
vendored
Normal file
@@ -0,0 +1 @@
|
||||
import{_ as e,c as o,b as a,o as n}from"./app-DPqZ-Olm.js";const l={};function r(s,t){return n(),o("div",null,[...t[0]||(t[0]=[a("p",null,"404 Not Found",-1)])])}const _=e(l,[["render",r]]),d=JSON.parse('{"path":"/404.html","title":"","lang":"zh-CN","frontmatter":{"layout":"NotFound"},"headers":[],"git":{},"filePathRelative":null}');export{_ as comp,d as data};
|
||||
32
docs/cmleonos/docs/.vuepress/dist/assets/app-DPqZ-Olm.js
vendored
Normal file
32
docs/cmleonos/docs/.vuepress/dist/assets/app-DPqZ-Olm.js
vendored
Normal file
File diff suppressed because one or more lines are too long
1
docs/cmleonos/docs/.vuepress/dist/assets/get-started.html-CZESuujR.js
vendored
Normal file
1
docs/cmleonos/docs/.vuepress/dist/assets/get-started.html-CZESuujR.js
vendored
Normal file
@@ -0,0 +1 @@
|
||||
import{_ as a,c as l,a as t,o as n}from"./app-DPqZ-Olm.js";const i={};function s(r,e){return n(),l("div",null,[...e[0]||(e[0]=[t('<h1 id="配置教程" tabindex="-1"><a class="header-anchor" href="#配置教程"><span>配置教程</span></a></h1><h2 id="准备工作" tabindex="-1"><a class="header-anchor" href="#准备工作"><span>准备工作</span></a></h2><p>首先,准备一台实体机/虚拟机,确保这台机器等于或大于以下配置:</p><ul><li>处理器:一核以上</li><li>内存:512MB以上</li><li>硬盘:512MB以上</li><li>一个键盘</li><li>一个蜂鸣器或音频输出设备</li><li>建议装上AMD驱动的网卡(Intel驱动的网卡似乎无法运行)</li></ul><h2 id="配置硬盘" tabindex="-1"><a class="header-anchor" href="#配置硬盘"><span>配置硬盘</span></a></h2><p>使用PE或其它工具格式化硬盘(注意只分一个区,文件系统选择FAT32)</p><h2 id="安装cmleonos" tabindex="-1"><a class="header-anchor" href="#安装cmleonos"><span>安装CMLeonOS</span></a></h2><p>将CMLeonOS的ISO文件挂载到虚拟机或实体机上,启动后按照提示进行 First time setup。</p><p>在 First time setup 中,系统会让你配置用户名、密码、主机名,配置完后会进行重启,重启之后正常登陆系统,然后就可以开始使用CMLeonOS了。</p>',9)])])}const c=a(i,[["render",s]]),h=JSON.parse('{"path":"/get-started.html","title":"配置教程","lang":"zh-CN","frontmatter":{},"headers":[{"level":2,"title":"准备工作","slug":"准备工作","link":"#准备工作","children":[]},{"level":2,"title":"配置硬盘","slug":"配置硬盘","link":"#配置硬盘","children":[]},{"level":2,"title":"安装CMLeonOS","slug":"安装cmleonos","link":"#安装cmleonos","children":[]}],"git":{},"filePathRelative":"get-started.md"}');export{c as comp,h as data};
|
||||
1
docs/cmleonos/docs/.vuepress/dist/assets/index.html-C2W3YGc4.js
vendored
Normal file
1
docs/cmleonos/docs/.vuepress/dist/assets/index.html-C2W3YGc4.js
vendored
Normal file
@@ -0,0 +1 @@
|
||||
import{_ as t,c as e,o as a}from"./app-DPqZ-Olm.js";const i={};function l(n,o){return a(),e("div")}const r=t(i,[["render",l]]),c=JSON.parse('{"path":"/","title":"主页","lang":"zh-CN","frontmatter":{"home":true,"title":"主页","actions":[{"text":"开始配置","link":"/get-started.html","type":"primary"},{"text":"Lua 文档","link":"/lua.html","type":"secondary"}],"features":[{"title":"安全用户系统","details":"用户系统是直接绑定在内核下的,通过 SHA-256 密码哈希算法对用户密码进行加密存储,确保用户密码的安全性。"},{"title":"Lua 脚本支持","details":"CMLeonOS支持 Lua 脚本,用户可以通过 Lua 脚本实现自定义功能。"},{"title":"网络","details":"CMLeonOS支持 TCP/IP 协议栈,用户可以通过网络连接到其他设备。"},{"title":"FTP 服务器","details":"CMLeonOS支持 FTP 服务器,用户可以通过 FTP 协议上传下载文件。"},{"title":"内置编辑器","details":"CMLeonOS支持内置编辑器,用户可以直接在CMLeonOS中编辑文件。"},{"title":"硬盘存储","details":"CMLeonOS支持硬盘存储,用户可以将文件持久存储在硬盘中。"}]},"headers":[],"git":{},"filePathRelative":"README.md"}');export{r as comp,c as data};
|
||||
275
docs/cmleonos/docs/.vuepress/dist/assets/lua.html-CwfoAtde.js
vendored
Normal file
275
docs/cmleonos/docs/.vuepress/dist/assets/lua.html-CwfoAtde.js
vendored
Normal file
File diff suppressed because one or more lines are too long
1
docs/cmleonos/docs/.vuepress/dist/assets/style-BmL0kmLr.css
vendored
Normal file
1
docs/cmleonos/docs/.vuepress/dist/assets/style-BmL0kmLr.css
vendored
Normal file
File diff suppressed because one or more lines are too long
43
docs/cmleonos/docs/.vuepress/dist/get-started.html
vendored
Normal file
43
docs/cmleonos/docs/.vuepress/dist/get-started.html
vendored
Normal file
File diff suppressed because one or more lines are too long
43
docs/cmleonos/docs/.vuepress/dist/index.html
vendored
Normal file
43
docs/cmleonos/docs/.vuepress/dist/index.html
vendored
Normal file
File diff suppressed because one or more lines are too long
317
docs/cmleonos/docs/.vuepress/dist/lua.html
vendored
Normal file
317
docs/cmleonos/docs/.vuepress/dist/lua.html
vendored
Normal file
@@ -0,0 +1,317 @@
|
||||
<!doctype html>
|
||||
<html lang="zh-CN">
|
||||
<head>
|
||||
<meta charset="utf-8" />
|
||||
<meta name="viewport" content="width=device-width,initial-scale=1" />
|
||||
<meta name="generator" content="VuePress 2.0.0-rc.20" />
|
||||
<style>
|
||||
:root {
|
||||
--vp-c-bg: #fff;
|
||||
}
|
||||
|
||||
[data-theme='dark'] {
|
||||
--vp-c-bg: #1b1b1f;
|
||||
}
|
||||
|
||||
html,
|
||||
body {
|
||||
background-color: var(--vp-c-bg);
|
||||
}
|
||||
</style>
|
||||
<script>
|
||||
const useChoice = localStorage.getItem('vuepress-color-scheme')
|
||||
const systemStatus =
|
||||
'matchMedia' in window
|
||||
? window.matchMedia('(prefers-color-scheme: dark)').matches
|
||||
: false
|
||||
|
||||
if (useChoice === 'light') {
|
||||
document.documentElement.dataset.theme = 'light'
|
||||
} else if (useChoice === 'dark' || systemStatus) {
|
||||
document.documentElement.dataset.theme = 'dark'
|
||||
}
|
||||
</script>
|
||||
<title>CMLeonOS Lua API 文档 | CMLeonOS官方文档站</title><meta name="description" content="CMLeonOS是一个基于微内核架构的操作系统,它的目标是提供一个简单、可靠、安全的操作系统环境。">
|
||||
<link rel="preload" href="/assets/style-BmL0kmLr.css" as="style"><link rel="stylesheet" href="/assets/style-BmL0kmLr.css">
|
||||
<link rel="modulepreload" href="/assets/app-DPqZ-Olm.js"><link rel="modulepreload" href="/assets/lua.html-CwfoAtde.js">
|
||||
<link rel="prefetch" href="/assets/get-started.html-CZESuujR.js" as="script"><link rel="prefetch" href="/assets/index.html-C2W3YGc4.js" as="script"><link rel="prefetch" href="/assets/404.html-quW2M2uK.js" as="script">
|
||||
</head>
|
||||
<body>
|
||||
<div id="app"><!--[--><div class="vp-theme-container external-link-icon" vp-container><!--[--><header class="vp-navbar" vp-navbar><div class="vp-toggle-sidebar-button" title="toggle sidebar" aria-expanded="false" role="button" tabindex="0"><div class="icon" aria-hidden="true"><span></span><span></span><span></span></div></div><span><a class="route-link" href="/"><!----><span class="vp-site-name" aria-hidden="true">CMLeonOS官方文档站</span></a></span><div class="vp-navbar-items-wrapper" style=""><!--[--><!--]--><nav class="vp-navbar-items vp-hide-mobile" aria-label="site navigation"><!--[--><div class="vp-navbar-item"><a class="route-link auto-link" href="/" aria-label="主页"><!--[--><!--[--><!--]--><!--]-->主页<!--[--><!--[--><!--]--><!--]--></a></div><div class="vp-navbar-item"><a class="route-link auto-link" href="/get-started.html" aria-label="配置教程"><!--[--><!--[--><!--]--><!--]-->配置教程<!--[--><!--[--><!--]--><!--]--></a></div><div class="vp-navbar-item"><a class="route-link route-link-active auto-link" href="/lua.html" aria-label="CMLeonOS Lua API 文档"><!--[--><!--[--><!--]--><!--]-->CMLeonOS Lua API 文档<!--[--><!--[--><!--]--><!--]--></a></div><!--]--></nav><!--[--><!--]--><button type="button" class="vp-toggle-color-mode-button" title="toggle color mode"><svg class="light-icon" viewbox="0 0 32 32" style=""><path d="M16 12.005a4 4 0 1 1-4 4a4.005 4.005 0 0 1 4-4m0-2a6 6 0 1 0 6 6a6 6 0 0 0-6-6z" fill="currentColor"></path><path d="M5.394 6.813l1.414-1.415l3.506 3.506L8.9 10.318z" fill="currentColor"></path><path d="M2 15.005h5v2H2z" fill="currentColor"></path><path d="M5.394 25.197L8.9 21.691l1.414 1.415l-3.506 3.505z" fill="currentColor"></path><path d="M15 25.005h2v5h-2z" fill="currentColor"></path><path d="M21.687 23.106l1.414-1.415l3.506 3.506l-1.414 1.414z" fill="currentColor"></path><path d="M25 15.005h5v2h-5z" fill="currentColor"></path><path d="M21.687 8.904l3.506-3.506l1.414 1.415l-3.506 3.505z" fill="currentColor"></path><path d="M15 2.005h2v5h-2z" fill="currentColor"></path></svg><svg class="dark-icon" viewbox="0 0 32 32" style="display:none;"><path d="M13.502 5.414a15.075 15.075 0 0 0 11.594 18.194a11.113 11.113 0 0 1-7.975 3.39c-.138 0-.278.005-.418 0a11.094 11.094 0 0 1-3.2-21.584M14.98 3a1.002 1.002 0 0 0-.175.016a13.096 13.096 0 0 0 1.825 25.981c.164.006.328 0 .49 0a13.072 13.072 0 0 0 10.703-5.555a1.01 1.01 0 0 0-.783-1.565A13.08 13.08 0 0 1 15.89 4.38A1.015 1.015 0 0 0 14.98 3z" fill="currentColor"></path></svg></button><!----></div></header><!--]--><div class="vp-sidebar-mask"></div><!--[--><aside class="vp-sidebar" vp-sidebar><nav class="vp-navbar-items" aria-label="site navigation"><!--[--><div class="vp-navbar-item"><a class="route-link auto-link" href="/" aria-label="主页"><!--[--><!--[--><!--]--><!--]-->主页<!--[--><!--[--><!--]--><!--]--></a></div><div class="vp-navbar-item"><a class="route-link auto-link" href="/get-started.html" aria-label="配置教程"><!--[--><!--[--><!--]--><!--]-->配置教程<!--[--><!--[--><!--]--><!--]--></a></div><div class="vp-navbar-item"><a class="route-link route-link-active auto-link" href="/lua.html" aria-label="CMLeonOS Lua API 文档"><!--[--><!--[--><!--]--><!--]-->CMLeonOS Lua API 文档<!--[--><!--[--><!--]--><!--]--></a></div><!--]--></nav><!--[--><!--]--><ul class="vp-sidebar-items"><!--[--><li><p tabindex="0" class="vp-sidebar-item vp-sidebar-heading">CMLeonOS Lua API 文档 <!----></p><!----></li><!--]--></ul><!--[--><!--]--></aside><!--]--><!--[--><main class="vp-page"><!--[--><!--]--><div vp-content><!--[--><!--]--><div><h1 id="cmleonos-lua-api-文档" tabindex="-1"><a class="header-anchor" href="#cmleonos-lua-api-文档"><span>CMLeonOS Lua API 文档</span></a></h1><p>本文档记录了 CMLeonOS 中 Lua 支持的所有函数和库。</p><h2 id="基础库-base" tabindex="-1"><a class="header-anchor" href="#基础库-base"><span>基础库 (base)</span></a></h2><h3 id="assert-v-message" tabindex="-1"><a class="header-anchor" href="#assert-v-message"><span>assert(v [, message])</span></a></h3><p>如果 v 为 false 或 nil,则抛出错误。可选参数 message 为错误信息。</p><div class="language-lua line-numbers-mode" data-highlighter="prismjs" data-ext="lua"><pre><code><span class="line"><span class="token function">assert</span><span class="token punctuation">(</span><span class="token keyword">true</span><span class="token punctuation">,</span> <span class="token string">"This should be true"</span><span class="token punctuation">)</span></span>
|
||||
<span class="line"><span class="token function">assert</span><span class="token punctuation">(</span><span class="token keyword">false</span><span class="token punctuation">,</span> <span class="token string">"This is false"</span><span class="token punctuation">)</span></span>
|
||||
<span class="line"></span></code></pre><div class="line-numbers" aria-hidden="true" style="counter-reset:line-number 0;"><div class="line-number"></div><div class="line-number"></div></div></div><h3 id="collectgarbage-opt" tabindex="-1"><a class="header-anchor" href="#collectgarbage-opt"><span>collectgarbage([opt])</span></a></h3><p>垃圾回收控制。支持以下选项:</p><ul><li><code>"collect"</code> - 执行垃圾回收</li><li><code>"count"</code> - 返回当前内存使用量(千字节)</li><li><code>"step"</code> - 执行一步垃圾回收</li><li><code>"isrunning"</code> - 返回垃圾回收器是否在运行</li></ul><div class="language-lua line-numbers-mode" data-highlighter="prismjs" data-ext="lua"><pre><code><span class="line"><span class="token function">collectgarbage</span><span class="token punctuation">(</span><span class="token string">"collect"</span><span class="token punctuation">)</span></span>
|
||||
<span class="line"><span class="token function">collectgarbage</span><span class="token punctuation">(</span><span class="token string">"count"</span><span class="token punctuation">)</span></span>
|
||||
<span class="line"></span></code></pre><div class="line-numbers" aria-hidden="true" style="counter-reset:line-number 0;"><div class="line-number"></div><div class="line-number"></div></div></div><h3 id="dofile-filename" tabindex="-1"><a class="header-anchor" href="#dofile-filename"><span>dofile([filename])</span></a></h3><p>加载并执行指定文件。</p><div class="language-lua line-numbers-mode" data-highlighter="prismjs" data-ext="lua"><pre><code><span class="line"><span class="token function">dofile</span><span class="token punctuation">(</span><span class="token string">"script.lua"</span><span class="token punctuation">)</span></span>
|
||||
<span class="line"></span></code></pre><div class="line-numbers" aria-hidden="true" style="counter-reset:line-number 0;"><div class="line-number"></div></div></div><h3 id="input-prompt" tabindex="-1"><a class="header-anchor" href="#input-prompt"><span>input([prompt])</span></a></h3><p>从控制台读取一行输入。</p><div class="language-lua line-numbers-mode" data-highlighter="prismjs" data-ext="lua"><pre><code><span class="line"><span class="token keyword">local</span> name <span class="token operator">=</span> <span class="token function">input</span><span class="token punctuation">(</span><span class="token string">"Enter your name: "</span><span class="token punctuation">)</span></span>
|
||||
<span class="line"><span class="token function">print</span><span class="token punctuation">(</span><span class="token string">"Hello, "</span> <span class="token operator">..</span> name<span class="token punctuation">)</span></span>
|
||||
<span class="line"></span></code></pre><div class="line-numbers" aria-hidden="true" style="counter-reset:line-number 0;"><div class="line-number"></div><div class="line-number"></div></div></div><h3 id="error-message-level" tabindex="-1"><a class="header-anchor" href="#error-message-level"><span>error(message [, level])</span></a></h3><p>抛出错误并终止当前受保护的调用。</p><div class="language-lua line-numbers-mode" data-highlighter="prismjs" data-ext="lua"><pre><code><span class="line"><span class="token function">error</span><span class="token punctuation">(</span><span class="token string">"Something went wrong"</span><span class="token punctuation">)</span></span>
|
||||
<span class="line"></span></code></pre><div class="line-numbers" aria-hidden="true" style="counter-reset:line-number 0;"><div class="line-number"></div></div></div><h3 id="ipairs-t" tabindex="-1"><a class="header-anchor" href="#ipairs-t"><span>ipairs(t)</span></a></h3><p>遍历数组,返回迭代器函数。</p><div class="language-lua line-numbers-mode" data-highlighter="prismjs" data-ext="lua"><pre><code><span class="line"><span class="token keyword">for</span> i<span class="token punctuation">,</span> v <span class="token keyword">in</span> <span class="token function">ipairs</span><span class="token punctuation">(</span><span class="token punctuation">{</span><span class="token number">1</span><span class="token punctuation">,</span> <span class="token number">2</span><span class="token punctuation">,</span> <span class="token number">3</span><span class="token punctuation">}</span><span class="token punctuation">)</span> <span class="token keyword">do</span></span>
|
||||
<span class="line"> <span class="token function">print</span><span class="token punctuation">(</span>i<span class="token punctuation">,</span> v<span class="token punctuation">)</span></span>
|
||||
<span class="line"><span class="token keyword">end</span></span>
|
||||
<span class="line"></span></code></pre><div class="line-numbers" aria-hidden="true" style="counter-reset:line-number 0;"><div class="line-number"></div><div class="line-number"></div><div class="line-number"></div></div></div><h3 id="loadfile-filename" tabindex="-1"><a class="header-anchor" href="#loadfile-filename"><span>loadfile([filename])</span></a></h3><p>加载文件但不执行,返回函数或 nil, error。</p><div class="language-lua line-numbers-mode" data-highlighter="prismjs" data-ext="lua"><pre><code><span class="line"><span class="token keyword">local</span> func<span class="token punctuation">,</span> err <span class="token operator">=</span> <span class="token function">loadfile</span><span class="token punctuation">(</span><span class="token string">"script.lua"</span><span class="token punctuation">)</span></span>
|
||||
<span class="line"><span class="token keyword">if</span> func <span class="token keyword">then</span></span>
|
||||
<span class="line"> <span class="token function">func</span><span class="token punctuation">(</span><span class="token punctuation">)</span></span>
|
||||
<span class="line"><span class="token keyword">end</span></span>
|
||||
<span class="line"></span></code></pre><div class="line-numbers" aria-hidden="true" style="counter-reset:line-number 0;"><div class="line-number"></div><div class="line-number"></div><div class="line-number"></div><div class="line-number"></div></div></div><h3 id="load-string-chunkname" tabindex="-1"><a class="header-anchor" href="#load-string-chunkname"><span>load(string [, chunkname])</span></a></h3><p>加载字符串但不执行,返回函数或 nil, error。</p><div class="language-lua line-numbers-mode" data-highlighter="prismjs" data-ext="lua"><pre><code><span class="line"><span class="token keyword">local</span> func <span class="token operator">=</span> <span class="token function">load</span><span class="token punctuation">(</span><span class="token string">"print('Hello')"</span><span class="token punctuation">)</span></span>
|
||||
<span class="line"><span class="token keyword">if</span> func <span class="token keyword">then</span></span>
|
||||
<span class="line"> <span class="token function">func</span><span class="token punctuation">(</span><span class="token punctuation">)</span></span>
|
||||
<span class="line"><span class="token keyword">end</span></span>
|
||||
<span class="line"></span></code></pre><div class="line-numbers" aria-hidden="true" style="counter-reset:line-number 0;"><div class="line-number"></div><div class="line-number"></div><div class="line-number"></div><div class="line-number"></div></div></div><h3 id="loadstring-string-chunkname" tabindex="-1"><a class="header-anchor" href="#loadstring-string-chunkname"><span>loadstring(string [, chunkname])</span></a></h3><p>加载字符串但不执行,返回函数或 nil, error。</p><div class="language-lua line-numbers-mode" data-highlighter="prismjs" data-ext="lua"><pre><code><span class="line"><span class="token keyword">local</span> func <span class="token operator">=</span> <span class="token function">loadstring</span><span class="token punctuation">(</span><span class="token string">"print('Hello')"</span><span class="token punctuation">)</span></span>
|
||||
<span class="line"><span class="token keyword">if</span> func <span class="token keyword">then</span></span>
|
||||
<span class="line"> <span class="token function">func</span><span class="token punctuation">(</span><span class="token punctuation">)</span></span>
|
||||
<span class="line"><span class="token keyword">end</span></span>
|
||||
<span class="line"></span></code></pre><div class="line-numbers" aria-hidden="true" style="counter-reset:line-number 0;"><div class="line-number"></div><div class="line-number"></div><div class="line-number"></div><div class="line-number"></div></div></div><h3 id="next-table-index" tabindex="-1"><a class="header-anchor" href="#next-table-index"><span>next(table [, index])</span></a></h3><p>返回表的下一个键值对。</p><div class="language-lua line-numbers-mode" data-highlighter="prismjs" data-ext="lua"><pre><code><span class="line">t <span class="token operator">=</span> <span class="token punctuation">{</span>a <span class="token operator">=</span> <span class="token number">1</span><span class="token punctuation">,</span> b <span class="token operator">=</span> <span class="token number">2</span><span class="token punctuation">}</span></span>
|
||||
<span class="line"><span class="token keyword">local</span> k<span class="token punctuation">,</span> v <span class="token operator">=</span> <span class="token function">next</span><span class="token punctuation">(</span>t<span class="token punctuation">)</span></span>
|
||||
<span class="line"><span class="token function">print</span><span class="token punctuation">(</span>k<span class="token punctuation">,</span> v<span class="token punctuation">)</span> <span class="token comment">-- a, 1</span></span>
|
||||
<span class="line"></span></code></pre><div class="line-numbers" aria-hidden="true" style="counter-reset:line-number 0;"><div class="line-number"></div><div class="line-number"></div><div class="line-number"></div></div></div><h3 id="pairs-t" tabindex="-1"><a class="header-anchor" href="#pairs-t"><span>pairs(t)</span></a></h3><p>遍历表,返回迭代器函数。</p><div class="language-lua line-numbers-mode" data-highlighter="prismjs" data-ext="lua"><pre><code><span class="line">t <span class="token operator">=</span> <span class="token punctuation">{</span>x <span class="token operator">=</span> <span class="token number">1</span><span class="token punctuation">,</span> y <span class="token operator">=</span> <span class="token number">2</span><span class="token punctuation">,</span> z <span class="token operator">=</span> <span class="token number">3</span><span class="token punctuation">}</span></span>
|
||||
<span class="line"><span class="token keyword">for</span> k<span class="token punctuation">,</span> v <span class="token keyword">in</span> <span class="token function">pairs</span><span class="token punctuation">(</span>t<span class="token punctuation">)</span> <span class="token keyword">do</span></span>
|
||||
<span class="line"> <span class="token function">print</span><span class="token punctuation">(</span>k<span class="token punctuation">,</span> v<span class="token punctuation">)</span></span>
|
||||
<span class="line"><span class="token keyword">end</span></span>
|
||||
<span class="line"></span></code></pre><div class="line-numbers" aria-hidden="true" style="counter-reset:line-number 0;"><div class="line-number"></div><div class="line-number"></div><div class="line-number"></div><div class="line-number"></div></div></div><h3 id="pcall-f-arg1" tabindex="-1"><a class="header-anchor" href="#pcall-f-arg1"><span>pcall(f [, arg1, ...])</span></a></h3><p>安全调用函数,捕获错误。</p><div class="language-lua line-numbers-mode" data-highlighter="prismjs" data-ext="lua"><pre><code><span class="line"><span class="token keyword">local</span> status<span class="token punctuation">,</span> err <span class="token operator">=</span> <span class="token function">pcall</span><span class="token punctuation">(</span><span class="token keyword">function</span><span class="token punctuation">(</span><span class="token punctuation">)</span></span>
|
||||
<span class="line"> <span class="token function">error</span><span class="token punctuation">(</span><span class="token string">"Something went wrong"</span><span class="token punctuation">)</span></span>
|
||||
<span class="line"><span class="token keyword">end</span><span class="token punctuation">)</span></span>
|
||||
<span class="line"><span class="token keyword">if</span> <span class="token keyword">not</span> status <span class="token keyword">then</span></span>
|
||||
<span class="line"> <span class="token function">print</span><span class="token punctuation">(</span>err<span class="token punctuation">)</span></span>
|
||||
<span class="line"><span class="token keyword">end</span></span>
|
||||
<span class="line"></span></code></pre><div class="line-numbers" aria-hidden="true" style="counter-reset:line-number 0;"><div class="line-number"></div><div class="line-number"></div><div class="line-number"></div><div class="line-number"></div><div class="line-number"></div><div class="line-number"></div></div></div><h3 id="print" tabindex="-1"><a class="header-anchor" href="#print"><span>print(...)</span></a></h3><p>打印参数到控制台。</p><div class="language-lua line-numbers-mode" data-highlighter="prismjs" data-ext="lua"><pre><code><span class="line"><span class="token function">print</span><span class="token punctuation">(</span><span class="token string">"Hello, World!"</span><span class="token punctuation">)</span></span>
|
||||
<span class="line"><span class="token function">print</span><span class="token punctuation">(</span><span class="token string">"Value:"</span><span class="token punctuation">,</span> <span class="token number">42</span><span class="token punctuation">)</span></span>
|
||||
<span class="line"></span></code></pre><div class="line-numbers" aria-hidden="true" style="counter-reset:line-number 0;"><div class="line-number"></div><div class="line-number"></div></div></div><h3 id="rawequal-v1-v2" tabindex="-1"><a class="header-anchor" href="#rawequal-v1-v2"><span>rawequal(v1, v2)</span></a></h3><p>比较两个值是否相等(不使用元方法)。</p><div class="language-lua line-numbers-mode" data-highlighter="prismjs" data-ext="lua"><pre><code><span class="line"><span class="token function">print</span><span class="token punctuation">(</span><span class="token function">rawequal</span><span class="token punctuation">(</span><span class="token number">1</span><span class="token punctuation">,</span> <span class="token number">1</span><span class="token punctuation">)</span><span class="token punctuation">)</span> <span class="token comment">-- true</span></span>
|
||||
<span class="line"><span class="token function">print</span><span class="token punctuation">(</span><span class="token function">rawequal</span><span class="token punctuation">(</span><span class="token number">1</span><span class="token punctuation">,</span> <span class="token number">2</span><span class="token punctuation">)</span><span class="token punctuation">)</span> <span class="token comment">-- false</span></span>
|
||||
<span class="line"></span></code></pre><div class="line-numbers" aria-hidden="true" style="counter-reset:line-number 0;"><div class="line-number"></div><div class="line-number"></div></div></div><h3 id="rawlen-v" tabindex="-1"><a class="header-anchor" href="#rawlen-v"><span>rawlen(v)</span></a></h3><p>返回值的长度(不使用元方法)。</p><div class="language-lua line-numbers-mode" data-highlighter="prismjs" data-ext="lua"><pre><code><span class="line"><span class="token function">print</span><span class="token punctuation">(</span><span class="token function">rawlen</span><span class="token punctuation">(</span><span class="token string">"hello"</span><span class="token punctuation">)</span><span class="token punctuation">)</span> <span class="token comment">-- 5</span></span>
|
||||
<span class="line"></span></code></pre><div class="line-numbers" aria-hidden="true" style="counter-reset:line-number 0;"><div class="line-number"></div></div></div><h3 id="rawget-table-index" tabindex="-1"><a class="header-anchor" href="#rawget-table-index"><span>rawget(table, index)</span></a></h3><p>获取表的值(不使用元方法)。</p><div class="language-lua line-numbers-mode" data-highlighter="prismjs" data-ext="lua"><pre><code><span class="line">t <span class="token operator">=</span> <span class="token function">setmetatable</span><span class="token punctuation">(</span><span class="token punctuation">{</span><span class="token punctuation">}</span><span class="token punctuation">,</span> <span class="token punctuation">{</span>__index <span class="token operator">=</span> <span class="token keyword">function</span><span class="token punctuation">(</span><span class="token punctuation">)</span> <span class="token keyword">return</span> <span class="token string">"default"</span> <span class="token keyword">end</span><span class="token punctuation">}</span><span class="token punctuation">)</span></span>
|
||||
<span class="line"><span class="token function">print</span><span class="token punctuation">(</span><span class="token function">rawget</span><span class="token punctuation">(</span>t<span class="token punctuation">,</span> <span class="token string">"key"</span><span class="token punctuation">)</span><span class="token punctuation">)</span> <span class="token comment">-- default</span></span>
|
||||
<span class="line"></span></code></pre><div class="line-numbers" aria-hidden="true" style="counter-reset:line-number 0;"><div class="line-number"></div><div class="line-number"></div></div></div><h3 id="rawset-table-index-value" tabindex="-1"><a class="header-anchor" href="#rawset-table-index-value"><span>rawset(table, index, value)</span></a></h3><p>设置表的值(不使用元方法)。</p><div class="language-lua line-numbers-mode" data-highlighter="prismjs" data-ext="lua"><pre><code><span class="line">t <span class="token operator">=</span> <span class="token punctuation">{</span><span class="token punctuation">}</span></span>
|
||||
<span class="line"><span class="token function">rawset</span><span class="token punctuation">(</span>t<span class="token punctuation">,</span> <span class="token string">"key"</span><span class="token punctuation">,</span> <span class="token string">"value"</span><span class="token punctuation">)</span></span>
|
||||
<span class="line"></span></code></pre><div class="line-numbers" aria-hidden="true" style="counter-reset:line-number 0;"><div class="line-number"></div><div class="line-number"></div></div></div><h3 id="select-index" tabindex="-1"><a class="header-anchor" href="#select-index"><span>select(index, ...)</span></a></h3><p>返回第 index 个参数。</p><div class="language-lua line-numbers-mode" data-highlighter="prismjs" data-ext="lua"><pre><code><span class="line"><span class="token function">print</span><span class="token punctuation">(</span><span class="token function">select</span><span class="token punctuation">(</span><span class="token number">2</span><span class="token punctuation">,</span> <span class="token string">"a"</span><span class="token punctuation">,</span> <span class="token string">"b"</span><span class="token punctuation">,</span> <span class="token string">"c"</span><span class="token punctuation">)</span><span class="token punctuation">)</span> <span class="token comment">-- c</span></span>
|
||||
<span class="line"></span></code></pre><div class="line-numbers" aria-hidden="true" style="counter-reset:line-number 0;"><div class="line-number"></div></div></div><h3 id="getmetatable-object" tabindex="-1"><a class="header-anchor" href="#getmetatable-object"><span>getmetatable(object)</span></a></h3><p>返回对象的元表。</p><div class="language-lua line-numbers-mode" data-highlighter="prismjs" data-ext="lua"><pre><code><span class="line">t <span class="token operator">=</span> <span class="token punctuation">{</span><span class="token punctuation">}</span></span>
|
||||
<span class="line">mt <span class="token operator">=</span> <span class="token punctuation">{</span>__add <span class="token operator">=</span> <span class="token keyword">function</span><span class="token punctuation">(</span>a<span class="token punctuation">,</span> b<span class="token punctuation">)</span> <span class="token keyword">return</span> a <span class="token operator">+</span> b <span class="token keyword">end</span><span class="token punctuation">}</span></span>
|
||||
<span class="line"><span class="token function">setmetatable</span><span class="token punctuation">(</span>t<span class="token punctuation">,</span> mt<span class="token punctuation">)</span></span>
|
||||
<span class="line"><span class="token function">print</span><span class="token punctuation">(</span><span class="token function">getmetatable</span><span class="token punctuation">(</span>t<span class="token punctuation">)</span><span class="token punctuation">.</span>__add<span class="token punctuation">)</span> <span class="token comment">-- function</span></span>
|
||||
<span class="line"></span></code></pre><div class="line-numbers" aria-hidden="true" style="counter-reset:line-number 0;"><div class="line-number"></div><div class="line-number"></div><div class="line-number"></div><div class="line-number"></div></div></div><h3 id="setmetatable-table-metatable" tabindex="-1"><a class="header-anchor" href="#setmetatable-table-metatable"><span>setmetatable(table, metatable)</span></a></h3><p>设置对象的元表。</p><div class="language-lua line-numbers-mode" data-highlighter="prismjs" data-ext="lua"><pre><code><span class="line">t <span class="token operator">=</span> <span class="token punctuation">{</span><span class="token punctuation">}</span></span>
|
||||
<span class="line">mt <span class="token operator">=</span> <span class="token punctuation">{</span>__add <span class="token operator">=</span> <span class="token keyword">function</span><span class="token punctuation">(</span>a<span class="token punctuation">,</span> b<span class="token punctuation">)</span> <span class="token keyword">return</span> a <span class="token operator">+</span> b <span class="token keyword">end</span><span class="token punctuation">}</span></span>
|
||||
<span class="line"><span class="token function">setmetatable</span><span class="token punctuation">(</span>t<span class="token punctuation">,</span> mt<span class="token punctuation">)</span></span>
|
||||
<span class="line"></span></code></pre><div class="line-numbers" aria-hidden="true" style="counter-reset:line-number 0;"><div class="line-number"></div><div class="line-number"></div><div class="line-number"></div></div></div><h3 id="tonumber-e-base" tabindex="-1"><a class="header-anchor" href="#tonumber-e-base"><span>tonumber(e [, base])</span></a></h3><p>将值转换为数字。</p><div class="language-lua line-numbers-mode" data-highlighter="prismjs" data-ext="lua"><pre><code><span class="line"><span class="token function">print</span><span class="token punctuation">(</span><span class="token function">tonumber</span><span class="token punctuation">(</span><span class="token string">"123"</span><span class="token punctuation">)</span><span class="token punctuation">)</span> <span class="token comment">-- 123</span></span>
|
||||
<span class="line"><span class="token function">print</span><span class="token punctuation">(</span><span class="token function">tonumber</span><span class="token punctuation">(</span><span class="token string">"FF"</span><span class="token punctuation">,</span> <span class="token number">16</span><span class="token punctuation">)</span><span class="token punctuation">)</span> <span class="token comment">-- 255</span></span>
|
||||
<span class="line"></span></code></pre><div class="line-numbers" aria-hidden="true" style="counter-reset:line-number 0;"><div class="line-number"></div><div class="line-number"></div></div></div><h3 id="tostring-v" tabindex="-1"><a class="header-anchor" href="#tostring-v"><span>tostring(v)</span></a></h3><p>将值转换为字符串。</p><div class="language-lua line-numbers-mode" data-highlighter="prismjs" data-ext="lua"><pre><code><span class="line"><span class="token function">print</span><span class="token punctuation">(</span><span class="token function">tostring</span><span class="token punctuation">(</span><span class="token number">123</span><span class="token punctuation">)</span><span class="token punctuation">)</span> <span class="token comment">-- "123"</span></span>
|
||||
<span class="line"><span class="token function">print</span><span class="token punctuation">(</span><span class="token function">tostring</span><span class="token punctuation">(</span><span class="token punctuation">{</span><span class="token punctuation">}</span><span class="token punctuation">)</span><span class="token punctuation">)</span> <span class="token comment">-- "table: 0x..."</span></span>
|
||||
<span class="line"></span></code></pre><div class="line-numbers" aria-hidden="true" style="counter-reset:line-number 0;"><div class="line-number"></div><div class="line-number"></div></div></div><h3 id="type-v" tabindex="-1"><a class="header-anchor" href="#type-v"><span>type(v)</span></a></h3><p>返回值的类型。</p><div class="language-lua line-numbers-mode" data-highlighter="prismjs" data-ext="lua"><pre><code><span class="line"><span class="token function">print</span><span class="token punctuation">(</span><span class="token function">type</span><span class="token punctuation">(</span><span class="token number">123</span><span class="token punctuation">)</span><span class="token punctuation">)</span> <span class="token comment">-- number</span></span>
|
||||
<span class="line"><span class="token function">print</span><span class="token punctuation">(</span><span class="token function">type</span><span class="token punctuation">(</span><span class="token string">"hello"</span><span class="token punctuation">)</span><span class="token punctuation">)</span> <span class="token comment">-- string</span></span>
|
||||
<span class="line"><span class="token function">print</span><span class="token punctuation">(</span><span class="token function">type</span><span class="token punctuation">(</span><span class="token punctuation">{</span><span class="token punctuation">}</span><span class="token punctuation">)</span><span class="token punctuation">)</span> <span class="token comment">-- table</span></span>
|
||||
<span class="line"><span class="token function">print</span><span class="token punctuation">(</span><span class="token function">type</span><span class="token punctuation">(</span><span class="token keyword">nil</span><span class="token punctuation">)</span><span class="token punctuation">)</span> <span class="token comment">-- nil</span></span>
|
||||
<span class="line"></span></code></pre><div class="line-numbers" aria-hidden="true" style="counter-reset:line-number 0;"><div class="line-number"></div><div class="line-number"></div><div class="line-number"></div><div class="line-number"></div></div></div><h3 id="xpcall-f-arg1" tabindex="-1"><a class="header-anchor" href="#xpcall-f-arg1"><span>xpcall(f [, arg1, ...])</span></a></h3><p>扩展的 pcall,返回状态和错误。</p><div class="language-lua line-numbers-mode" data-highlighter="prismjs" data-ext="lua"><pre><code><span class="line"><span class="token keyword">local</span> ok<span class="token punctuation">,</span> err <span class="token operator">=</span> <span class="token function">xpcall</span><span class="token punctuation">(</span><span class="token keyword">function</span><span class="token punctuation">(</span><span class="token punctuation">)</span></span>
|
||||
<span class="line"> <span class="token function">error</span><span class="token punctuation">(</span><span class="token string">"Something went wrong"</span><span class="token punctuation">)</span></span>
|
||||
<span class="line"><span class="token keyword">end</span><span class="token punctuation">)</span></span>
|
||||
<span class="line"><span class="token keyword">if</span> <span class="token keyword">not</span> ok <span class="token keyword">then</span></span>
|
||||
<span class="line"> <span class="token function">print</span><span class="token punctuation">(</span>err<span class="token punctuation">)</span></span>
|
||||
<span class="line"><span class="token keyword">end</span></span>
|
||||
<span class="line"></span></code></pre><div class="line-numbers" aria-hidden="true" style="counter-reset:line-number 0;"><div class="line-number"></div><div class="line-number"></div><div class="line-number"></div><div class="line-number"></div><div class="line-number"></div><div class="line-number"></div></div></div><hr><h2 id="数学库-math" tabindex="-1"><a class="header-anchor" href="#数学库-math"><span>数学库 (math)</span></a></h2><h3 id="math-abs-x" tabindex="-1"><a class="header-anchor" href="#math-abs-x"><span>math.abs(x)</span></a></h3><p>返回 x 的绝对值。</p><div class="language-lua line-numbers-mode" data-highlighter="prismjs" data-ext="lua"><pre><code><span class="line"><span class="token function">print</span><span class="token punctuation">(</span>math<span class="token punctuation">.</span><span class="token function">abs</span><span class="token punctuation">(</span><span class="token operator">-</span><span class="token number">5</span><span class="token punctuation">)</span><span class="token punctuation">)</span> <span class="token comment">-- 5</span></span>
|
||||
<span class="line"><span class="token function">print</span><span class="token punctuation">(</span>math<span class="token punctuation">.</span><span class="token function">abs</span><span class="token punctuation">(</span><span class="token number">5</span><span class="token punctuation">)</span><span class="token punctuation">)</span> <span class="token comment">-- 5</span></span>
|
||||
<span class="line"></span></code></pre><div class="line-numbers" aria-hidden="true" style="counter-reset:line-number 0;"><div class="line-number"></div><div class="line-number"></div></div></div><h3 id="math-acos-x" tabindex="-1"><a class="header-anchor" href="#math-acos-x"><span>math.acos(x)</span></a></h3><p>返回 x 的反余弦值(弧度)。</p><div class="language-lua line-numbers-mode" data-highlighter="prismjs" data-ext="lua"><pre><code><span class="line"><span class="token function">print</span><span class="token punctuation">(</span>math<span class="token punctuation">.</span><span class="token function">acos</span><span class="token punctuation">(</span><span class="token number">0</span><span class="token punctuation">)</span><span class="token punctuation">)</span> <span class="token comment">-- 1.570796</span></span>
|
||||
<span class="line"></span></code></pre><div class="line-numbers" aria-hidden="true" style="counter-reset:line-number 0;"><div class="line-number"></div></div></div><h3 id="math-asin-x" tabindex="-1"><a class="header-anchor" href="#math-asin-x"><span>math.asin(x)</span></a></h3><p>返回 x 的反正弦值(弧度)。</p><div class="language-lua line-numbers-mode" data-highlighter="prismjs" data-ext="lua"><pre><code><span class="line"><span class="token function">print</span><span class="token punctuation">(</span>math<span class="token punctuation">.</span><span class="token function">asin</span><span class="token punctuation">(</span><span class="token number">0</span><span class="token punctuation">)</span><span class="token punctuation">)</span> <span class="token comment">-- 0</span></span>
|
||||
<span class="line"></span></code></pre><div class="line-numbers" aria-hidden="true" style="counter-reset:line-number 0;"><div class="line-number"></div></div></div><h3 id="math-atan2-y-x" tabindex="-1"><a class="header-anchor" href="#math-atan2-y-x"><span>math.atan2(y, x)</span></a></h3><p>返回 y/x 的反正切值(弧度)。</p><div class="language-lua line-numbers-mode" data-highlighter="prismjs" data-ext="lua"><pre><code><span class="line"><span class="token function">print</span><span class="token punctuation">(</span>math<span class="token punctuation">.</span><span class="token function">atan2</span><span class="token punctuation">(</span><span class="token number">0</span><span class="token punctuation">,</span> <span class="token number">1</span><span class="token punctuation">)</span><span class="token punctuation">)</span> <span class="token comment">-- 0</span></span>
|
||||
<span class="line"></span></code></pre><div class="line-numbers" aria-hidden="true" style="counter-reset:line-number 0;"><div class="line-number"></div></div></div><h3 id="math-atan-x" tabindex="-1"><a class="header-anchor" href="#math-atan-x"><span>math.atan(x)</span></a></h3><p>返回 x 的反正切值(弧度)。</p><div class="language-lua line-numbers-mode" data-highlighter="prismjs" data-ext="lua"><pre><code><span class="line"><span class="token function">print</span><span class="token punctuation">(</span>math<span class="token punctuation">.</span><span class="token function">atan</span><span class="token punctuation">(</span><span class="token number">1</span><span class="token punctuation">)</span><span class="token punctuation">)</span> <span class="token comment">-- 0.785398</span></span>
|
||||
<span class="line"></span></code></pre><div class="line-numbers" aria-hidden="true" style="counter-reset:line-number 0;"><div class="line-number"></div></div></div><h3 id="math-ceil-x" tabindex="-1"><a class="header-anchor" href="#math-ceil-x"><span>math.ceil(x)</span></a></h3><p>返回不小于 x 的最小整数。</p><div class="language-lua line-numbers-mode" data-highlighter="prismjs" data-ext="lua"><pre><code><span class="line"><span class="token function">print</span><span class="token punctuation">(</span>math<span class="token punctuation">.</span><span class="token function">ceil</span><span class="token punctuation">(</span><span class="token number">3.5</span><span class="token punctuation">)</span><span class="token punctuation">)</span> <span class="token comment">-- 4</span></span>
|
||||
<span class="line"><span class="token function">print</span><span class="token punctuation">(</span>math<span class="token punctuation">.</span><span class="token function">ceil</span><span class="token punctuation">(</span><span class="token operator">-</span><span class="token number">3.5</span><span class="token punctuation">)</span><span class="token punctuation">)</span> <span class="token comment">-- -3</span></span>
|
||||
<span class="line"></span></code></pre><div class="line-numbers" aria-hidden="true" style="counter-reset:line-number 0;"><div class="line-number"></div><div class="line-number"></div></div></div><h3 id="math-cosh-x" tabindex="-1"><a class="header-anchor" href="#math-cosh-x"><span>math.cosh(x)</span></a></h3><p>返回 x 的双曲余弦值。</p><div class="language-lua line-numbers-mode" data-highlighter="prismjs" data-ext="lua"><pre><code><span class="line"><span class="token function">print</span><span class="token punctuation">(</span>math<span class="token punctuation">.</span><span class="token function">cosh</span><span class="token punctuation">(</span><span class="token number">0</span><span class="token punctuation">)</span><span class="token punctuation">)</span> <span class="token comment">-- 1</span></span>
|
||||
<span class="line"></span></code></pre><div class="line-numbers" aria-hidden="true" style="counter-reset:line-number 0;"><div class="line-number"></div></div></div><h3 id="math-cos-x" tabindex="-1"><a class="header-anchor" href="#math-cos-x"><span>math.cos(x)</span></a></h3><p>返回 x 的余弦值(弧度)。</p><div class="language-lua line-numbers-mode" data-highlighter="prismjs" data-ext="lua"><pre><code><span class="line"><span class="token function">print</span><span class="token punctuation">(</span>math<span class="token punctuation">.</span><span class="token function">cos</span><span class="token punctuation">(</span><span class="token number">0</span><span class="token punctuation">)</span><span class="token punctuation">)</span> <span class="token comment">-- 1</span></span>
|
||||
<span class="line"><span class="token function">print</span><span class="token punctuation">(</span>math<span class="token punctuation">.</span><span class="token function">cos</span><span class="token punctuation">(</span>math<span class="token punctuation">.</span>pi<span class="token punctuation">)</span><span class="token punctuation">)</span> <span class="token comment">-- -1</span></span>
|
||||
<span class="line"></span></code></pre><div class="line-numbers" aria-hidden="true" style="counter-reset:line-number 0;"><div class="line-number"></div><div class="line-number"></div></div></div><h3 id="math-deg-x" tabindex="-1"><a class="header-anchor" href="#math-deg-x"><span>math.deg(x)</span></a></h3><p>将弧度转换为角度。</p><div class="language-lua line-numbers-mode" data-highlighter="prismjs" data-ext="lua"><pre><code><span class="line"><span class="token function">print</span><span class="token punctuation">(</span>math<span class="token punctuation">.</span><span class="token function">deg</span><span class="token punctuation">(</span>math<span class="token punctuation">.</span>pi<span class="token punctuation">)</span><span class="token punctuation">)</span> <span class="token comment">-- 180</span></span>
|
||||
<span class="line"></span></code></pre><div class="line-numbers" aria-hidden="true" style="counter-reset:line-number 0;"><div class="line-number"></div></div></div><h3 id="math-exp-x" tabindex="-1"><a class="header-anchor" href="#math-exp-x"><span>math.exp(x)</span></a></h3><p>返回 e 的 x 次方。</p><div class="language-lua line-numbers-mode" data-highlighter="prismjs" data-ext="lua"><pre><code><span class="line"><span class="token function">print</span><span class="token punctuation">(</span>math<span class="token punctuation">.</span><span class="token function">exp</span><span class="token punctuation">(</span><span class="token number">1</span><span class="token punctuation">)</span><span class="token punctuation">)</span> <span class="token comment">-- 2.718282</span></span>
|
||||
<span class="line"></span></code></pre><div class="line-numbers" aria-hidden="true" style="counter-reset:line-number 0;"><div class="line-number"></div></div></div><h3 id="math-floor-x" tabindex="-1"><a class="header-anchor" href="#math-floor-x"><span>math.floor(x)</span></a></h3><p>返回不大于 x 的最大整数。</p><div class="language-lua line-numbers-mode" data-highlighter="prismjs" data-ext="lua"><pre><code><span class="line"><span class="token function">print</span><span class="token punctuation">(</span>math<span class="token punctuation">.</span><span class="token function">floor</span><span class="token punctuation">(</span><span class="token number">3.5</span><span class="token punctuation">)</span><span class="token punctuation">)</span> <span class="token comment">-- 3</span></span>
|
||||
<span class="line"><span class="token function">print</span><span class="token punctuation">(</span>math<span class="token punctuation">.</span><span class="token function">floor</span><span class="token punctuation">(</span><span class="token operator">-</span><span class="token number">3.5</span><span class="token punctuation">)</span><span class="token punctuation">)</span> <span class="token comment">-- -4</span></span>
|
||||
<span class="line"></span></code></pre><div class="line-numbers" aria-hidden="true" style="counter-reset:line-number 0;"><div class="line-number"></div><div class="line-number"></div></div></div><h3 id="math-fmod-x-y" tabindex="-1"><a class="header-anchor" href="#math-fmod-x-y"><span>math.fmod(x, y)</span></a></h3><p>返回 x 除以 y 的余数。</p><div class="language-lua line-numbers-mode" data-highlighter="prismjs" data-ext="lua"><pre><code><span class="line"><span class="token function">print</span><span class="token punctuation">(</span>math<span class="token punctuation">.</span><span class="token function">fmod</span><span class="token punctuation">(</span><span class="token number">7</span><span class="token punctuation">,</span> <span class="token number">3</span><span class="token punctuation">)</span><span class="token punctuation">)</span> <span class="token comment">-- 1</span></span>
|
||||
<span class="line"></span></code></pre><div class="line-numbers" aria-hidden="true" style="counter-reset:line-number 0;"><div class="line-number"></div></div></div><h3 id="math-frexp-x" tabindex="-1"><a class="header-anchor" href="#math-frexp-x"><span>math.frexp(x)</span></a></h3><p>将 x 分解为尾数和指数。</p><div class="language-lua line-numbers-mode" data-highlighter="prismjs" data-ext="lua"><pre><code><span class="line"><span class="token keyword">local</span> m<span class="token punctuation">,</span> e <span class="token operator">=</span> math<span class="token punctuation">.</span><span class="token function">frexp</span><span class="token punctuation">(</span><span class="token number">1.5</span><span class="token punctuation">)</span></span>
|
||||
<span class="line"><span class="token function">print</span><span class="token punctuation">(</span>m<span class="token punctuation">,</span> e<span class="token punctuation">)</span></span>
|
||||
<span class="line"></span></code></pre><div class="line-numbers" aria-hidden="true" style="counter-reset:line-number 0;"><div class="line-number"></div><div class="line-number"></div></div></div><h3 id="math-ldexp-m-e" tabindex="-1"><a class="header-anchor" href="#math-ldexp-m-e"><span>math.ldexp(m, e)</span></a></h3><p>返回 m 乘以 2 的 e 次方。</p><div class="language-lua line-numbers-mode" data-highlighter="prismjs" data-ext="lua"><pre><code><span class="line"><span class="token function">print</span><span class="token punctuation">(</span>math<span class="token punctuation">.</span><span class="token function">ldexp</span><span class="token punctuation">(</span><span class="token number">1</span><span class="token punctuation">,</span> <span class="token number">2</span><span class="token punctuation">)</span><span class="token punctuation">)</span> <span class="token comment">-- 4</span></span>
|
||||
<span class="line"></span></code></pre><div class="line-numbers" aria-hidden="true" style="counter-reset:line-number 0;"><div class="line-number"></div></div></div><h3 id="math-log10-x" tabindex="-1"><a class="header-anchor" href="#math-log10-x"><span>math.log10(x)</span></a></h3><p>返回 x 的以 10 为底的对数。</p><div class="language-lua line-numbers-mode" data-highlighter="prismjs" data-ext="lua"><pre><code><span class="line"><span class="token function">print</span><span class="token punctuation">(</span>math<span class="token punctuation">.</span><span class="token function">log10</span><span class="token punctuation">(</span><span class="token number">100</span><span class="token punctuation">)</span><span class="token punctuation">)</span> <span class="token comment">-- 2</span></span>
|
||||
<span class="line"></span></code></pre><div class="line-numbers" aria-hidden="true" style="counter-reset:line-number 0;"><div class="line-number"></div></div></div><h3 id="math-log-x-base" tabindex="-1"><a class="header-anchor" href="#math-log-x-base"><span>math.log(x [, base])</span></a></h3><p>返回 x 的对数。默认以 e 为底。</p><div class="language-lua line-numbers-mode" data-highlighter="prismjs" data-ext="lua"><pre><code><span class="line"><span class="token function">print</span><span class="token punctuation">(</span>math<span class="token punctuation">.</span><span class="token function">log</span><span class="token punctuation">(</span><span class="token number">10</span><span class="token punctuation">)</span><span class="token punctuation">)</span> <span class="token comment">-- 2.302585</span></span>
|
||||
<span class="line"><span class="token function">print</span><span class="token punctuation">(</span>math<span class="token punctuation">.</span><span class="token function">log</span><span class="token punctuation">(</span><span class="token number">100</span><span class="token punctuation">,</span> <span class="token number">10</span><span class="token punctuation">)</span><span class="token punctuation">)</span> <span class="token comment">-- 2</span></span>
|
||||
<span class="line"></span></code></pre><div class="line-numbers" aria-hidden="true" style="counter-reset:line-number 0;"><div class="line-number"></div><div class="line-number"></div></div></div><h3 id="math-max-x1" tabindex="-1"><a class="header-anchor" href="#math-max-x1"><span>math.max(x1, ...)</span></a></h3><p>返回参数中的最大值。</p><div class="language-lua line-numbers-mode" data-highlighter="prismjs" data-ext="lua"><pre><code><span class="line"><span class="token function">print</span><span class="token punctuation">(</span>math<span class="token punctuation">.</span><span class="token function">max</span><span class="token punctuation">(</span><span class="token number">1</span><span class="token punctuation">,</span> <span class="token number">2</span><span class="token punctuation">,</span> <span class="token number">3</span><span class="token punctuation">)</span><span class="token punctuation">)</span> <span class="token comment">-- 3</span></span>
|
||||
<span class="line"><span class="token function">print</span><span class="token punctuation">(</span>math<span class="token punctuation">.</span><span class="token function">max</span><span class="token punctuation">(</span><span class="token operator">-</span><span class="token number">5</span><span class="token punctuation">,</span> <span class="token operator">-</span><span class="token number">2</span><span class="token punctuation">,</span> <span class="token operator">-</span><span class="token number">1</span><span class="token punctuation">)</span><span class="token punctuation">)</span> <span class="token comment">-- -1</span></span>
|
||||
<span class="line"></span></code></pre><div class="line-numbers" aria-hidden="true" style="counter-reset:line-number 0;"><div class="line-number"></div><div class="line-number"></div></div></div><h3 id="math-min-x1" tabindex="-1"><a class="header-anchor" href="#math-min-x1"><span>math.min(x1, ...)</span></a></h3><p>返回参数中的最小值。</p><div class="language-lua line-numbers-mode" data-highlighter="prismjs" data-ext="lua"><pre><code><span class="line"><span class="token function">print</span><span class="token punctuation">(</span>math<span class="token punctuation">.</span><span class="token function">min</span><span class="token punctuation">(</span><span class="token number">1</span><span class="token punctuation">,</span> <span class="token number">2</span><span class="token punctuation">,</span> <span class="token number">3</span><span class="token punctuation">)</span><span class="token punctuation">)</span> <span class="token comment">-- 1</span></span>
|
||||
<span class="line"><span class="token function">print</span><span class="token punctuation">(</span>math<span class="token punctuation">.</span><span class="token function">min</span><span class="token punctuation">(</span><span class="token operator">-</span><span class="token number">5</span><span class="token punctuation">,</span> <span class="token operator">-</span><span class="token number">2</span><span class="token punctuation">,</span> <span class="token operator">-</span><span class="token number">1</span><span class="token punctuation">)</span><span class="token punctuation">)</span> <span class="token comment">-- -5</span></span>
|
||||
<span class="line"></span></code></pre><div class="line-numbers" aria-hidden="true" style="counter-reset:line-number 0;"><div class="line-number"></div><div class="line-number"></div></div></div><h3 id="math-modf-x" tabindex="-1"><a class="header-anchor" href="#math-modf-x"><span>math.modf(x)</span></a></h3><p>将 x 分解为整数和小数部分。</p><div class="language-lua line-numbers-mode" data-highlighter="prismjs" data-ext="lua"><pre><code><span class="line"><span class="token keyword">local</span> i<span class="token punctuation">,</span> f <span class="token operator">=</span> math<span class="token punctuation">.</span><span class="token function">modf</span><span class="token punctuation">(</span><span class="token number">3.5</span><span class="token punctuation">)</span></span>
|
||||
<span class="line"><span class="token function">print</span><span class="token punctuation">(</span>i<span class="token punctuation">,</span> f<span class="token punctuation">)</span></span>
|
||||
<span class="line"></span></code></pre><div class="line-numbers" aria-hidden="true" style="counter-reset:line-number 0;"><div class="line-number"></div><div class="line-number"></div></div></div><h3 id="math-pow-x-y" tabindex="-1"><a class="header-anchor" href="#math-pow-x-y"><span>math.pow(x, y)</span></a></h3><p>返回 x 的 y 次方。</p><div class="language-lua line-numbers-mode" data-highlighter="prismjs" data-ext="lua"><pre><code><span class="line"><span class="token function">print</span><span class="token punctuation">(</span>math<span class="token punctuation">.</span><span class="token function">pow</span><span class="token punctuation">(</span><span class="token number">2</span><span class="token punctuation">,</span> <span class="token number">3</span><span class="token punctuation">)</span><span class="token punctuation">)</span> <span class="token comment">-- 8</span></span>
|
||||
<span class="line"><span class="token function">print</span><span class="token punctuation">(</span>math<span class="token punctuation">.</span><span class="token function">pow</span><span class="token punctuation">(</span><span class="token number">10</span><span class="token punctuation">,</span> <span class="token number">2</span><span class="token punctuation">)</span><span class="token punctuation">)</span> <span class="token comment">-- 100</span></span>
|
||||
<span class="line"></span></code></pre><div class="line-numbers" aria-hidden="true" style="counter-reset:line-number 0;"><div class="line-number"></div><div class="line-number"></div></div></div><h3 id="math-rad-x" tabindex="-1"><a class="header-anchor" href="#math-rad-x"><span>math.rad(x)</span></a></h3><p>将角度转换为弧度。</p><div class="language-lua line-numbers-mode" data-highlighter="prismjs" data-ext="lua"><pre><code><span class="line"><span class="token function">print</span><span class="token punctuation">(</span>math<span class="token punctuation">.</span><span class="token function">rad</span><span class="token punctuation">(</span><span class="token number">180</span><span class="token punctuation">)</span><span class="token punctuation">)</span> <span class="token comment">-- 3.141593</span></span>
|
||||
<span class="line"></span></code></pre><div class="line-numbers" aria-hidden="true" style="counter-reset:line-number 0;"><div class="line-number"></div></div></div><h3 id="math-random-m-n" tabindex="-1"><a class="header-anchor" href="#math-random-m-n"><span>math.random([m [, n]])</span></a></h3><p>返回随机数。无参数返回 [0,1),一个参数返回 [1,m],两个参数返回 [m,n]。</p><div class="language-lua line-numbers-mode" data-highlighter="prismjs" data-ext="lua"><pre><code><span class="line"><span class="token function">print</span><span class="token punctuation">(</span>math<span class="token punctuation">.</span><span class="token function">random</span><span class="token punctuation">(</span><span class="token punctuation">)</span><span class="token punctuation">)</span> <span class="token comment">-- 0 或 1</span></span>
|
||||
<span class="line"><span class="token function">print</span><span class="token punctuation">(</span>math<span class="token punctuation">.</span><span class="token function">random</span><span class="token punctuation">(</span><span class="token number">10</span><span class="token punctuation">)</span><span class="token punctuation">)</span> <span class="token comment">-- 1-10</span></span>
|
||||
<span class="line"><span class="token function">print</span><span class="token punctuation">(</span>math<span class="token punctuation">.</span><span class="token function">random</span><span class="token punctuation">(</span><span class="token number">5</span><span class="token punctuation">,</span> <span class="token number">10</span><span class="token punctuation">)</span><span class="token punctuation">)</span> <span class="token comment">-- 5-10</span></span>
|
||||
<span class="line"></span></code></pre><div class="line-numbers" aria-hidden="true" style="counter-reset:line-number 0;"><div class="line-number"></div><div class="line-number"></div><div class="line-number"></div></div></div><h3 id="math-randomseed-x" tabindex="-1"><a class="header-anchor" href="#math-randomseed-x"><span>math.randomseed(x)</span></a></h3><p>设置随机数生成器的种子。</p><div class="language-lua line-numbers-mode" data-highlighter="prismjs" data-ext="lua"><pre><code><span class="line">math<span class="token punctuation">.</span><span class="token function">randomseed</span><span class="token punctuation">(</span>os<span class="token punctuation">.</span><span class="token function">time</span><span class="token punctuation">(</span><span class="token punctuation">)</span><span class="token punctuation">)</span></span>
|
||||
<span class="line"><span class="token function">print</span><span class="token punctuation">(</span>math<span class="token punctuation">.</span><span class="token function">random</span><span class="token punctuation">(</span><span class="token punctuation">)</span><span class="token punctuation">)</span></span>
|
||||
<span class="line"></span></code></pre><div class="line-numbers" aria-hidden="true" style="counter-reset:line-number 0;"><div class="line-number"></div><div class="line-number"></div></div></div><h3 id="math-sinh-x" tabindex="-1"><a class="header-anchor" href="#math-sinh-x"><span>math.sinh(x)</span></a></h3><p>返回 x 的双曲正弦值。</p><div class="language-lua line-numbers-mode" data-highlighter="prismjs" data-ext="lua"><pre><code><span class="line"><span class="token function">print</span><span class="token punctuation">(</span>math<span class="token punctuation">.</span><span class="token function">sinh</span><span class="token punctuation">(</span><span class="token number">0</span><span class="token punctuation">)</span><span class="token punctuation">)</span> <span class="token comment">-- 0</span></span>
|
||||
<span class="line"></span></code></pre><div class="line-numbers" aria-hidden="true" style="counter-reset:line-number 0;"><div class="line-number"></div></div></div><h3 id="math-sin-x" tabindex="-1"><a class="header-anchor" href="#math-sin-x"><span>math.sin(x)</span></a></h3><p>返回 x 的正弦值(弧度)。</p><div class="language-lua line-numbers-mode" data-highlighter="prismjs" data-ext="lua"><pre><code><span class="line"><span class="token function">print</span><span class="token punctuation">(</span>math<span class="token punctuation">.</span><span class="token function">sin</span><span class="token punctuation">(</span><span class="token number">0</span><span class="token punctuation">)</span><span class="token punctuation">)</span> <span class="token comment">-- 0</span></span>
|
||||
<span class="line"><span class="token function">print</span><span class="token punctuation">(</span>math<span class="token punctuation">.</span><span class="token function">sin</span><span class="token punctuation">(</span>math<span class="token punctuation">.</span>pi<span class="token operator">/</span><span class="token number">2</span><span class="token punctuation">)</span><span class="token punctuation">)</span> <span class="token comment">-- 1</span></span>
|
||||
<span class="line"></span></code></pre><div class="line-numbers" aria-hidden="true" style="counter-reset:line-number 0;"><div class="line-number"></div><div class="line-number"></div></div></div><h3 id="math-sqrt-x" tabindex="-1"><a class="header-anchor" href="#math-sqrt-x"><span>math.sqrt(x)</span></a></h3><p>返回 x 的平方根。</p><div class="language-lua line-numbers-mode" data-highlighter="prismjs" data-ext="lua"><pre><code><span class="line"><span class="token function">print</span><span class="token punctuation">(</span>math<span class="token punctuation">.</span><span class="token function">sqrt</span><span class="token punctuation">(</span><span class="token number">16</span><span class="token punctuation">)</span><span class="token punctuation">)</span> <span class="token comment">-- 4</span></span>
|
||||
<span class="line"><span class="token function">print</span><span class="token punctuation">(</span>math<span class="token punctuation">.</span><span class="token function">sqrt</span><span class="token punctuation">(</span><span class="token number">2</span><span class="token punctuation">)</span><span class="token punctuation">)</span> <span class="token comment">-- 1.414214</span></span>
|
||||
<span class="line"></span></code></pre><div class="line-numbers" aria-hidden="true" style="counter-reset:line-number 0;"><div class="line-number"></div><div class="line-number"></div></div></div><h3 id="math-tanh-x" tabindex="-1"><a class="header-anchor" href="#math-tanh-x"><span>math.tanh(x)</span></a></h3><p>返回 x 的双曲正切值。</p><div class="language-lua line-numbers-mode" data-highlighter="prismjs" data-ext="lua"><pre><code><span class="line"><span class="token function">print</span><span class="token punctuation">(</span>math<span class="token punctuation">.</span><span class="token function">tanh</span><span class="token punctuation">(</span><span class="token number">0</span><span class="token punctuation">)</span><span class="token punctuation">)</span> <span class="token comment">-- 0</span></span>
|
||||
<span class="line"></span></code></pre><div class="line-numbers" aria-hidden="true" style="counter-reset:line-number 0;"><div class="line-number"></div></div></div><h3 id="math-tan-x" tabindex="-1"><a class="header-anchor" href="#math-tan-x"><span>math.tan(x)</span></a></h3><p>返回 x 的正切值(弧度)。</p><div class="language-lua line-numbers-mode" data-highlighter="prismjs" data-ext="lua"><pre><code><span class="line"><span class="token function">print</span><span class="token punctuation">(</span>math<span class="token punctuation">.</span><span class="token function">tan</span><span class="token punctuation">(</span><span class="token number">0</span><span class="token punctuation">)</span><span class="token punctuation">)</span> <span class="token comment">-- 0</span></span>
|
||||
<span class="line"><span class="token function">print</span><span class="token punctuation">(</span>math<span class="token punctuation">.</span><span class="token function">tan</span><span class="token punctuation">(</span>math<span class="token punctuation">.</span>pi<span class="token operator">/</span><span class="token number">4</span><span class="token punctuation">)</span><span class="token punctuation">)</span> <span class="token comment">-- 1</span></span>
|
||||
<span class="line"></span></code></pre><div class="line-numbers" aria-hidden="true" style="counter-reset:line-number 0;"><div class="line-number"></div><div class="line-number"></div></div></div><h3 id="math-pi" tabindex="-1"><a class="header-anchor" href="#math-pi"><span>math.pi</span></a></h3><p>圆周率常量。</p><div class="language-lua line-numbers-mode" data-highlighter="prismjs" data-ext="lua"><pre><code><span class="line"><span class="token function">print</span><span class="token punctuation">(</span>math<span class="token punctuation">.</span>pi<span class="token punctuation">)</span> <span class="token comment">-- 3.141592653589793</span></span>
|
||||
<span class="line"></span></code></pre><div class="line-numbers" aria-hidden="true" style="counter-reset:line-number 0;"><div class="line-number"></div></div></div><h3 id="math-huge" tabindex="-1"><a class="header-anchor" href="#math-huge"><span>math.huge</span></a></h3><p>表示最大数值的常量。</p><div class="language-lua line-numbers-mode" data-highlighter="prismjs" data-ext="lua"><pre><code><span class="line"><span class="token function">print</span><span class="token punctuation">(</span>math<span class="token punctuation">.</span>huge<span class="token punctuation">)</span></span>
|
||||
<span class="line"></span></code></pre><div class="line-numbers" aria-hidden="true" style="counter-reset:line-number 0;"><div class="line-number"></div></div></div><hr><h2 id="字符串库-string" tabindex="-1"><a class="header-anchor" href="#字符串库-string"><span>字符串库 (string)</span></a></h2><h3 id="string-byte-s-i-j" tabindex="-1"><a class="header-anchor" href="#string-byte-s-i-j"><span>string.byte(s [, i [, j]])</span></a></h3><p>返回字符的内部数值表示。</p><div class="language-lua line-numbers-mode" data-highlighter="prismjs" data-ext="lua"><pre><code><span class="line"><span class="token function">print</span><span class="token punctuation">(</span>string<span class="token punctuation">.</span><span class="token function">byte</span><span class="token punctuation">(</span><span class="token string">"ABC"</span><span class="token punctuation">)</span><span class="token punctuation">)</span> <span class="token comment">-- 65</span></span>
|
||||
<span class="line"><span class="token function">print</span><span class="token punctuation">(</span>string<span class="token punctuation">.</span><span class="token function">byte</span><span class="token punctuation">(</span><span class="token string">"ABC"</span><span class="token punctuation">,</span> <span class="token number">2</span><span class="token punctuation">)</span><span class="token punctuation">)</span> <span class="token comment">-- 66</span></span>
|
||||
<span class="line"><span class="token function">print</span><span class="token punctuation">(</span>string<span class="token punctuation">.</span><span class="token function">byte</span><span class="token punctuation">(</span><span class="token string">"ABC"</span><span class="token punctuation">,</span> <span class="token operator">-</span><span class="token number">1</span><span class="token punctuation">)</span><span class="token punctuation">)</span> <span class="token comment">-- 67</span></span>
|
||||
<span class="line"></span></code></pre><div class="line-numbers" aria-hidden="true" style="counter-reset:line-number 0;"><div class="line-number"></div><div class="line-number"></div><div class="line-number"></div></div></div><h3 id="string-char" tabindex="-1"><a class="header-anchor" href="#string-char"><span>string.char(...)</span></a></h3><p>将数值转换为字符。</p><div class="language-lua line-numbers-mode" data-highlighter="prismjs" data-ext="lua"><pre><code><span class="line"><span class="token function">print</span><span class="token punctuation">(</span>string<span class="token punctuation">.</span><span class="token function">char</span><span class="token punctuation">(</span><span class="token number">65</span><span class="token punctuation">,</span> <span class="token number">66</span><span class="token punctuation">,</span> <span class="token number">67</span><span class="token punctuation">)</span><span class="token punctuation">)</span> <span class="token comment">-- ABC</span></span>
|
||||
<span class="line"></span></code></pre><div class="line-numbers" aria-hidden="true" style="counter-reset:line-number 0;"><div class="line-number"></div></div></div><h3 id="string-dump-function" tabindex="-1"><a class="header-anchor" href="#string-dump-function"><span>string.dump(function)</span></a></h3><p>返回函数的二进制表示。</p><div class="language-lua line-numbers-mode" data-highlighter="prismjs" data-ext="lua"><pre><code><span class="line"><span class="token function">print</span><span class="token punctuation">(</span>string<span class="token punctuation">.</span><span class="token function">dump</span><span class="token punctuation">(</span>print<span class="token punctuation">)</span><span class="token punctuation">)</span></span>
|
||||
<span class="line"></span></code></pre><div class="line-numbers" aria-hidden="true" style="counter-reset:line-number 0;"><div class="line-number"></div></div></div><h3 id="string-find-s-pattern-init-plain" tabindex="-1"><a class="header-anchor" href="#string-find-s-pattern-init-plain"><span>string.find(s, pattern [, init [, plain]])</span></a></h3><p>在字符串中查找模式。</p><div class="language-lua line-numbers-mode" data-highlighter="prismjs" data-ext="lua"><pre><code><span class="line"><span class="token function">print</span><span class="token punctuation">(</span>string<span class="token punctuation">.</span><span class="token function">find</span><span class="token punctuation">(</span><span class="token string">"hello world"</span><span class="token punctuation">,</span> <span class="token string">"world"</span><span class="token punctuation">)</span><span class="token punctuation">)</span> <span class="token comment">-- 7</span></span>
|
||||
<span class="line"><span class="token function">print</span><span class="token punctuation">(</span>string<span class="token punctuation">.</span><span class="token function">find</span><span class="token punctuation">(</span><span class="token string">"hello world"</span><span class="token punctuation">,</span> <span class="token string">"l"</span><span class="token punctuation">)</span><span class="token punctuation">)</span> <span class="token comment">-- 3</span></span>
|
||||
<span class="line"></span></code></pre><div class="line-numbers" aria-hidden="true" style="counter-reset:line-number 0;"><div class="line-number"></div><div class="line-number"></div></div></div><h3 id="string-format-formatstring" tabindex="-1"><a class="header-anchor" href="#string-format-formatstring"><span>string.format(formatstring, ...)</span></a></h3><p>格式化字符串。</p><div class="language-lua line-numbers-mode" data-highlighter="prismjs" data-ext="lua"><pre><code><span class="line"><span class="token function">print</span><span class="token punctuation">(</span>string<span class="token punctuation">.</span><span class="token function">format</span><span class="token punctuation">(</span><span class="token string">"Value: %d"</span><span class="token punctuation">,</span> <span class="token number">42</span><span class="token punctuation">)</span><span class="token punctuation">)</span></span>
|
||||
<span class="line"><span class="token function">print</span><span class="token punctuation">(</span>string<span class="token punctuation">.</span><span class="token function">format</span><span class="token punctuation">(</span><span class="token string">"Name: %s, Age: %d"</span><span class="token punctuation">,</span> <span class="token string">"Alice"</span><span class="token punctuation">,</span> <span class="token number">30</span><span class="token punctuation">)</span><span class="token punctuation">)</span></span>
|
||||
<span class="line"></span></code></pre><div class="line-numbers" aria-hidden="true" style="counter-reset:line-number 0;"><div class="line-number"></div><div class="line-number"></div></div></div><h3 id="string-gmatch-s-pattern" tabindex="-1"><a class="header-anchor" href="#string-gmatch-s-pattern"><span>string.gmatch(s, pattern)</span></a></h3><p>返回字符串中所有匹配模式的迭代器。</p><div class="language-lua line-numbers-mode" data-highlighter="prismjs" data-ext="lua"><pre><code><span class="line"><span class="token keyword">for</span> word <span class="token keyword">in</span> string<span class="token punctuation">.</span><span class="token function">gmatch</span><span class="token punctuation">(</span><span class="token string">"hello world"</span><span class="token punctuation">,</span> <span class="token string">"%a+"</span><span class="token punctuation">)</span> <span class="token keyword">do</span></span>
|
||||
<span class="line"> <span class="token function">print</span><span class="token punctuation">(</span>word<span class="token punctuation">)</span></span>
|
||||
<span class="line"><span class="token keyword">end</span></span>
|
||||
<span class="line"></span></code></pre><div class="line-numbers" aria-hidden="true" style="counter-reset:line-number 0;"><div class="line-number"></div><div class="line-number"></div><div class="line-number"></div></div></div><h3 id="string-gsub-s-pattern-repl-n" tabindex="-1"><a class="header-anchor" href="#string-gsub-s-pattern-repl-n"><span>string.gsub(s, pattern, repl [, n])</span></a></h3><p>替换字符串中的模式。</p><div class="language-lua line-numbers-mode" data-highlighter="prismjs" data-ext="lua"><pre><code><span class="line"><span class="token function">print</span><span class="token punctuation">(</span>string<span class="token punctuation">.</span><span class="token function">gsub</span><span class="token punctuation">(</span><span class="token string">"hello world"</span><span class="token punctuation">,</span> <span class="token string">"world"</span><span class="token punctuation">,</span> <span class="token string">"Lua"</span><span class="token punctuation">)</span><span class="token punctuation">)</span> <span class="token comment">-- hello Lua</span></span>
|
||||
<span class="line"><span class="token function">print</span><span class="token punctuation">(</span>string<span class="token punctuation">.</span><span class="token function">gsub</span><span class="token punctuation">(</span><span class="token string">"hello world"</span><span class="token punctuation">,</span> <span class="token string">"l"</span><span class="token punctuation">,</span> <span class="token string">"L"</span><span class="token punctuation">)</span><span class="token punctuation">)</span> <span class="token comment">-- HeLLo Lua</span></span>
|
||||
<span class="line"></span></code></pre><div class="line-numbers" aria-hidden="true" style="counter-reset:line-number 0;"><div class="line-number"></div><div class="line-number"></div></div></div><h3 id="string-len-s" tabindex="-1"><a class="header-anchor" href="#string-len-s"><span>string.len(s)</span></a></h3><p>返回字符串长度。</p><div class="language-lua line-numbers-mode" data-highlighter="prismjs" data-ext="lua"><pre><code><span class="line"><span class="token function">print</span><span class="token punctuation">(</span>string<span class="token punctuation">.</span><span class="token function">len</span><span class="token punctuation">(</span><span class="token string">"hello"</span><span class="token punctuation">)</span><span class="token punctuation">)</span> <span class="token comment">-- 5</span></span>
|
||||
<span class="line"></span></code></pre><div class="line-numbers" aria-hidden="true" style="counter-reset:line-number 0;"><div class="line-number"></div></div></div><h3 id="string-lower-s" tabindex="-1"><a class="header-anchor" href="#string-lower-s"><span>string.lower(s)</span></a></h3><p>将字符串转换为小写。</p><div class="language-lua line-numbers-mode" data-highlighter="prismjs" data-ext="lua"><pre><code><span class="line"><span class="token function">print</span><span class="token punctuation">(</span>string<span class="token punctuation">.</span><span class="token function">lower</span><span class="token punctuation">(</span><span class="token string">"HELLO"</span><span class="token punctuation">)</span><span class="token punctuation">)</span> <span class="token comment">-- hello</span></span>
|
||||
<span class="line"></span></code></pre><div class="line-numbers" aria-hidden="true" style="counter-reset:line-number 0;"><div class="line-number"></div></div></div><h3 id="string-match-s-pattern-init" tabindex="-1"><a class="header-anchor" href="#string-match-s-pattern-init"><span>string.match(s, pattern [, init])</span></a></h3><p>返回字符串中第一个匹配模式的子串。</p><div class="language-lua line-numbers-mode" data-highlighter="prismjs" data-ext="lua"><pre><code><span class="line"><span class="token function">print</span><span class="token punctuation">(</span>string<span class="token punctuation">.</span><span class="token function">match</span><span class="token punctuation">(</span><span class="token string">"hello world"</span><span class="token punctuation">,</span> <span class="token string">"%w+"</span><span class="token punctuation">)</span><span class="token punctuation">)</span> <span class="token comment">-- hello</span></span>
|
||||
<span class="line"></span></code></pre><div class="line-numbers" aria-hidden="true" style="counter-reset:line-number 0;"><div class="line-number"></div></div></div><h3 id="string-rep-s-n" tabindex="-1"><a class="header-anchor" href="#string-rep-s-n"><span>string.rep(s, n)</span></a></h3><p>重复字符串 n 次。</p><div class="language-lua line-numbers-mode" data-highlighter="prismjs" data-ext="lua"><pre><code><span class="line"><span class="token function">print</span><span class="token punctuation">(</span>string<span class="token punctuation">.</span><span class="token function">rep</span><span class="token punctuation">(</span><span class="token string">"ab"</span><span class="token punctuation">,</span> <span class="token number">3</span><span class="token punctuation">)</span><span class="token punctuation">)</span> <span class="token comment">-- ababab</span></span>
|
||||
<span class="line"></span></code></pre><div class="line-numbers" aria-hidden="true" style="counter-reset:line-number 0;"><div class="line-number"></div></div></div><h3 id="string-reverse-s" tabindex="-1"><a class="header-anchor" href="#string-reverse-s"><span>string.reverse(s)</span></a></h3><p>反转字符串。</p><div class="language-lua line-numbers-mode" data-highlighter="prismjs" data-ext="lua"><pre><code><span class="line"><span class="token function">print</span><span class="token punctuation">(</span>string<span class="token punctuation">.</span><span class="token function">reverse</span><span class="token punctuation">(</span><span class="token string">"hello"</span><span class="token punctuation">)</span><span class="token punctuation">)</span> <span class="token comment">-- olleh</span></span>
|
||||
<span class="line"></span></code></pre><div class="line-numbers" aria-hidden="true" style="counter-reset:line-number 0;"><div class="line-number"></div></div></div><h3 id="string-sub-s-i-j" tabindex="-1"><a class="header-anchor" href="#string-sub-s-i-j"><span>string.sub(s, i [, j])</span></a></h3><p>返回字符串的子串。</p><div class="language-lua line-numbers-mode" data-highlighter="prismjs" data-ext="lua"><pre><code><span class="line"><span class="token function">print</span><span class="token punctuation">(</span>string<span class="token punctuation">.</span><span class="token function">sub</span><span class="token punctuation">(</span><span class="token string">"hello world"</span><span class="token punctuation">,</span> <span class="token number">1</span><span class="token punctuation">,</span> <span class="token number">5</span><span class="token punctuation">)</span><span class="token punctuation">)</span> <span class="token comment">-- hello</span></span>
|
||||
<span class="line"><span class="token function">print</span><span class="token punctuation">(</span>string<span class="token punctuation">.</span><span class="token function">sub</span><span class="token punctuation">(</span><span class="token string">"hello world"</span><span class="token punctuation">,</span> <span class="token number">7</span><span class="token punctuation">)</span><span class="token punctuation">)</span> <span class="token comment">-- world</span></span>
|
||||
<span class="line"></span></code></pre><div class="line-numbers" aria-hidden="true" style="counter-reset:line-number 0;"><div class="line-number"></div><div class="line-number"></div></div></div><h3 id="string-upper-s" tabindex="-1"><a class="header-anchor" href="#string-upper-s"><span>string.upper(s)</span></a></h3><p>将字符串转换为大写。</p><div class="language-lua line-numbers-mode" data-highlighter="prismjs" data-ext="lua"><pre><code><span class="line"><span class="token function">print</span><span class="token punctuation">(</span>string<span class="token punctuation">.</span><span class="token function">upper</span><span class="token punctuation">(</span><span class="token string">"hello"</span><span class="token punctuation">)</span><span class="token punctuation">)</span> <span class="token comment">-- HELLO</span></span>
|
||||
<span class="line"></span></code></pre><div class="line-numbers" aria-hidden="true" style="counter-reset:line-number 0;"><div class="line-number"></div></div></div><hr><h2 id="操作系统库-os" tabindex="-1"><a class="header-anchor" href="#操作系统库-os"><span>操作系统库 (os)</span></a></h2><h3 id="os-clock" tabindex="-1"><a class="header-anchor" href="#os-clock"><span>os.clock()</span></a></h3><p>返回程序使用的 CPU 时间(秒)。</p><div class="language-lua line-numbers-mode" data-highlighter="prismjs" data-ext="lua"><pre><code><span class="line"><span class="token function">print</span><span class="token punctuation">(</span>os<span class="token punctuation">.</span><span class="token function">clock</span><span class="token punctuation">(</span><span class="token punctuation">)</span><span class="token punctuation">)</span></span>
|
||||
<span class="line"></span></code></pre><div class="line-numbers" aria-hidden="true" style="counter-reset:line-number 0;"><div class="line-number"></div></div></div><h3 id="os-gethostname" tabindex="-1"><a class="header-anchor" href="#os-gethostname"><span>os.gethostname()</span></a></h3><p>返回系统主机名。</p><div class="language-lua line-numbers-mode" data-highlighter="prismjs" data-ext="lua"><pre><code><span class="line"><span class="token function">print</span><span class="token punctuation">(</span>os<span class="token punctuation">.</span><span class="token function">gethostname</span><span class="token punctuation">(</span><span class="token punctuation">)</span><span class="token punctuation">)</span></span>
|
||||
<span class="line"></span></code></pre><div class="line-numbers" aria-hidden="true" style="counter-reset:line-number 0;"><div class="line-number"></div></div></div><h3 id="os-getenv-varname" tabindex="-1"><a class="header-anchor" href="#os-getenv-varname"><span>os.getenv(varname)</span></a></h3><p>返回环境变量的值。</p><div class="language-lua line-numbers-mode" data-highlighter="prismjs" data-ext="lua"><pre><code><span class="line"><span class="token function">print</span><span class="token punctuation">(</span>os<span class="token punctuation">.</span><span class="token function">getenv</span><span class="token punctuation">(</span><span class="token string">"PATH"</span><span class="token punctuation">)</span><span class="token punctuation">)</span></span>
|
||||
<span class="line"></span></code></pre><div class="line-numbers" aria-hidden="true" style="counter-reset:line-number 0;"><div class="line-number"></div></div></div><h3 id="os-setenv-varname-value" tabindex="-1"><a class="header-anchor" href="#os-setenv-varname-value"><span>os.setenv(varname, value)</span></a></h3><p>设置环境变量的值。</p><div class="language-lua line-numbers-mode" data-highlighter="prismjs" data-ext="lua"><pre><code><span class="line">os<span class="token punctuation">.</span><span class="token function">setenv</span><span class="token punctuation">(</span><span class="token string">"MYVAR"</span><span class="token punctuation">,</span> <span class="token string">"value"</span><span class="token punctuation">)</span></span>
|
||||
<span class="line"></span></code></pre><div class="line-numbers" aria-hidden="true" style="counter-reset:line-number 0;"><div class="line-number"></div></div></div><h3 id="os-delenv-varname" tabindex="-1"><a class="header-anchor" href="#os-delenv-varname"><span>os.delenv(varname)</span></a></h3><p>删除环境变量。</p><div class="language-lua line-numbers-mode" data-highlighter="prismjs" data-ext="lua"><pre><code><span class="line">os<span class="token punctuation">.</span><span class="token function">delenv</span><span class="token punctuation">(</span><span class="token string">"MYVAR"</span><span class="token punctuation">)</span></span>
|
||||
<span class="line"></span></code></pre><div class="line-numbers" aria-hidden="true" style="counter-reset:line-number 0;"><div class="line-number"></div></div></div><h3 id="os-addenv-varname-value" tabindex="-1"><a class="header-anchor" href="#os-addenv-varname-value"><span>os.addenv(varname, value)</span></a></h3><p>添加环境变量(同 setenv)。</p><div class="language-lua line-numbers-mode" data-highlighter="prismjs" data-ext="lua"><pre><code><span class="line">os<span class="token punctuation">.</span><span class="token function">addenv</span><span class="token punctuation">(</span><span class="token string">"MYVAR"</span><span class="token punctuation">,</span> <span class="token string">"value"</span><span class="token punctuation">)</span></span>
|
||||
<span class="line"></span></code></pre><div class="line-numbers" aria-hidden="true" style="counter-reset:line-number 0;"><div class="line-number"></div></div></div><h3 id="os-execute-command" tabindex="-1"><a class="header-anchor" href="#os-execute-command"><span>os.execute(command)</span></a></h3><p>执行 Shell 命令。</p><div class="language-lua line-numbers-mode" data-highlighter="prismjs" data-ext="lua"><pre><code><span class="line">os<span class="token punctuation">.</span><span class="token function">execute</span><span class="token punctuation">(</span><span class="token string">"ls"</span><span class="token punctuation">)</span></span>
|
||||
<span class="line">os<span class="token punctuation">.</span><span class="token function">execute</span><span class="token punctuation">(</span><span class="token string">"echo Hello"</span><span class="token punctuation">)</span></span>
|
||||
<span class="line"></span></code></pre><div class="line-numbers" aria-hidden="true" style="counter-reset:line-number 0;"><div class="line-number"></div><div class="line-number"></div></div></div><h3 id="os-executefile-path" tabindex="-1"><a class="header-anchor" href="#os-executefile-path"><span>os.executefile(path)</span></a></h3><p>执行命令文件(.cm)。</p><div class="language-lua line-numbers-mode" data-highlighter="prismjs" data-ext="lua"><pre><code><span class="line">os<span class="token punctuation">.</span><span class="token function">executefile</span><span class="token punctuation">(</span><span class="token string">"myscript.cm"</span><span class="token punctuation">)</span></span>
|
||||
<span class="line"></span></code></pre><div class="line-numbers" aria-hidden="true" style="counter-reset:line-number 0;"><div class="line-number"></div></div></div><h3 id="os-reboot" tabindex="-1"><a class="header-anchor" href="#os-reboot"><span>os.reboot()</span></a></h3><p>重启系统。</p><div class="language-lua line-numbers-mode" data-highlighter="prismjs" data-ext="lua"><pre><code><span class="line">os<span class="token punctuation">.</span><span class="token function">reboot</span><span class="token punctuation">(</span><span class="token punctuation">)</span></span>
|
||||
<span class="line"></span></code></pre><div class="line-numbers" aria-hidden="true" style="counter-reset:line-number 0;"><div class="line-number"></div></div></div><h3 id="os-shutdown" tabindex="-1"><a class="header-anchor" href="#os-shutdown"><span>os.shutdown()</span></a></h3><p>关闭系统。</p><div class="language-lua line-numbers-mode" data-highlighter="prismjs" data-ext="lua"><pre><code><span class="line">os<span class="token punctuation">.</span><span class="token function">shutdown</span><span class="token punctuation">(</span><span class="token punctuation">)</span></span>
|
||||
<span class="line"></span></code></pre><div class="line-numbers" aria-hidden="true" style="counter-reset:line-number 0;"><div class="line-number"></div></div></div><h3 id="os-sleep-seconds" tabindex="-1"><a class="header-anchor" href="#os-sleep-seconds"><span>os.sleep(seconds)</span></a></h3><p>休眠指定秒数。</p><div class="language-lua line-numbers-mode" data-highlighter="prismjs" data-ext="lua"><pre><code><span class="line">os<span class="token punctuation">.</span><span class="token function">sleep</span><span class="token punctuation">(</span><span class="token number">5</span><span class="token punctuation">)</span></span>
|
||||
<span class="line"></span></code></pre><div class="line-numbers" aria-hidden="true" style="counter-reset:line-number 0;"><div class="line-number"></div></div></div><h3 id="os-beep" tabindex="-1"><a class="header-anchor" href="#os-beep"><span>os.beep()</span></a></h3><p>发出蜂鸣声。</p><div class="language-lua line-numbers-mode" data-highlighter="prismjs" data-ext="lua"><pre><code><span class="line">os<span class="token punctuation">.</span><span class="token function">beep</span><span class="token punctuation">(</span><span class="token punctuation">)</span></span>
|
||||
<span class="line"></span></code></pre><div class="line-numbers" aria-hidden="true" style="counter-reset:line-number 0;"><div class="line-number"></div></div></div><h3 id="os-clear" tabindex="-1"><a class="header-anchor" href="#os-clear"><span>os.clear()</span></a></h3><p>清屏。</p><div class="language-lua line-numbers-mode" data-highlighter="prismjs" data-ext="lua"><pre><code><span class="line">os<span class="token punctuation">.</span><span class="token function">clear</span><span class="token punctuation">(</span><span class="token punctuation">)</span></span>
|
||||
<span class="line"></span></code></pre><div class="line-numbers" aria-hidden="true" style="counter-reset:line-number 0;"><div class="line-number"></div></div></div><h3 id="os-getusername" tabindex="-1"><a class="header-anchor" href="#os-getusername"><span>os.getusername()</span></a></h3><p>返回当前登录用户名。</p><div class="language-lua line-numbers-mode" data-highlighter="prismjs" data-ext="lua"><pre><code><span class="line"><span class="token function">print</span><span class="token punctuation">(</span>os<span class="token punctuation">.</span><span class="token function">getusername</span><span class="token punctuation">(</span><span class="token punctuation">)</span><span class="token punctuation">)</span></span>
|
||||
<span class="line"></span></code></pre><div class="line-numbers" aria-hidden="true" style="counter-reset:line-number 0;"><div class="line-number"></div></div></div><h3 id="os-isadmin" tabindex="-1"><a class="header-anchor" href="#os-isadmin"><span>os.isadmin()</span></a></h3><p>检查当前用户是否是管理员。</p><div class="language-lua line-numbers-mode" data-highlighter="prismjs" data-ext="lua"><pre><code><span class="line"><span class="token keyword">if</span> os<span class="token punctuation">.</span><span class="token function">isadmin</span><span class="token punctuation">(</span><span class="token punctuation">)</span> <span class="token keyword">then</span></span>
|
||||
<span class="line"> <span class="token function">print</span><span class="token punctuation">(</span><span class="token string">"User is admin"</span><span class="token punctuation">)</span></span>
|
||||
<span class="line"><span class="token keyword">else</span></span>
|
||||
<span class="line"> <span class="token function">print</span><span class="token punctuation">(</span><span class="token string">"User is not admin"</span><span class="token punctuation">)</span></span>
|
||||
<span class="line"><span class="token keyword">end</span></span>
|
||||
<span class="line"></span></code></pre><div class="line-numbers" aria-hidden="true" style="counter-reset:line-number 0;"><div class="line-number"></div><div class="line-number"></div><div class="line-number"></div><div class="line-number"></div><div class="line-number"></div></div></div><h3 id="os-sha256-input" tabindex="-1"><a class="header-anchor" href="#os-sha256-input"><span>os.sha256(input)</span></a></h3><p>计算字符串的 SHA256 哈希值。</p><div class="language-lua line-numbers-mode" data-highlighter="prismjs" data-ext="lua"><pre><code><span class="line"><span class="token keyword">local</span> hash <span class="token operator">=</span> os<span class="token punctuation">.</span><span class="token function">sha256</span><span class="token punctuation">(</span><span class="token string">"Hello World"</span><span class="token punctuation">)</span></span>
|
||||
<span class="line"><span class="token function">print</span><span class="token punctuation">(</span>hash<span class="token punctuation">)</span></span>
|
||||
<span class="line"></span></code></pre><div class="line-numbers" aria-hidden="true" style="counter-reset:line-number 0;"><div class="line-number"></div><div class="line-number"></div></div></div><h3 id="os-base64encrypt-input" tabindex="-1"><a class="header-anchor" href="#os-base64encrypt-input"><span>os.base64encrypt(input)</span></a></h3><p>将字符串编码为 Base64。</p><div class="language-lua line-numbers-mode" data-highlighter="prismjs" data-ext="lua"><pre><code><span class="line"><span class="token keyword">local</span> encoded <span class="token operator">=</span> os<span class="token punctuation">.</span><span class="token function">base64encrypt</span><span class="token punctuation">(</span><span class="token string">"Hello World"</span><span class="token punctuation">)</span></span>
|
||||
<span class="line"><span class="token function">print</span><span class="token punctuation">(</span>encoded<span class="token punctuation">)</span></span>
|
||||
<span class="line"></span></code></pre><div class="line-numbers" aria-hidden="true" style="counter-reset:line-number 0;"><div class="line-number"></div><div class="line-number"></div></div></div><h3 id="os-base64decrypt-input" tabindex="-1"><a class="header-anchor" href="#os-base64decrypt-input"><span>os.base64decrypt(input)</span></a></h3><p>将 Base64 字符串解码。</p><div class="language-lua line-numbers-mode" data-highlighter="prismjs" data-ext="lua"><pre><code><span class="line"><span class="token keyword">local</span> decoded <span class="token operator">=</span> os<span class="token punctuation">.</span><span class="token function">base64decrypt</span><span class="token punctuation">(</span><span class="token string">"SGVsbG8gV29ybGxcmVvcmxvYg=="</span><span class="token punctuation">)</span></span>
|
||||
<span class="line"><span class="token function">print</span><span class="token punctuation">(</span>decoded<span class="token punctuation">)</span></span>
|
||||
<span class="line"></span></code></pre><div class="line-numbers" aria-hidden="true" style="counter-reset:line-number 0;"><div class="line-number"></div><div class="line-number"></div></div></div><hr><h2 id="输入输出库-io" tabindex="-1"><a class="header-anchor" href="#输入输出库-io"><span>输入输出库 (io)</span></a></h2><h3 id="io-close-file" tabindex="-1"><a class="header-anchor" href="#io-close-file"><span>io.close(file)</span></a></h3><p>关闭文件。</p><div class="language-lua line-numbers-mode" data-highlighter="prismjs" data-ext="lua"><pre><code><span class="line"><span class="token keyword">local</span> file <span class="token operator">=</span> io<span class="token punctuation">.</span><span class="token function">open</span><span class="token punctuation">(</span><span class="token string">"test.txt"</span><span class="token punctuation">,</span> <span class="token string">"w"</span><span class="token punctuation">)</span></span>
|
||||
<span class="line">file<span class="token punctuation">:</span><span class="token function">write</span><span class="token punctuation">(</span><span class="token string">"Hello"</span><span class="token punctuation">)</span></span>
|
||||
<span class="line">io<span class="token punctuation">.</span><span class="token function">close</span><span class="token punctuation">(</span>file<span class="token punctuation">)</span></span>
|
||||
<span class="line"></span></code></pre><div class="line-numbers" aria-hidden="true" style="counter-reset:line-number 0;"><div class="line-number"></div><div class="line-number"></div><div class="line-number"></div></div></div><h3 id="io-flush" tabindex="-1"><a class="header-anchor" href="#io-flush"><span>io.flush()</span></a></h3><p>刷新所有打开文件的输出缓冲区。</p><div class="language-lua line-numbers-mode" data-highlighter="prismjs" data-ext="lua"><pre><code><span class="line">io<span class="token punctuation">.</span><span class="token function">flush</span><span class="token punctuation">(</span><span class="token punctuation">)</span></span>
|
||||
<span class="line"></span></code></pre><div class="line-numbers" aria-hidden="true" style="counter-reset:line-number 0;"><div class="line-number"></div></div></div><h3 id="io-input-file" tabindex="-1"><a class="header-anchor" href="#io-input-file"><span>io.input([file])</span></a></h3><p>设置默认输入文件。</p><div class="language-lua line-numbers-mode" data-highlighter="prismjs" data-ext="lua"><pre><code><span class="line">io<span class="token punctuation">.</span><span class="token function">input</span><span class="token punctuation">(</span><span class="token string">"input.txt"</span><span class="token punctuation">)</span></span>
|
||||
<span class="line"></span></code></pre><div class="line-numbers" aria-hidden="true" style="counter-reset:line-number 0;"><div class="line-number"></div></div></div><h3 id="io-lines-filename" tabindex="-1"><a class="header-anchor" href="#io-lines-filename"><span>io.lines([filename])</span></a></h3><p>返回文件行的迭代器。</p><div class="language-lua line-numbers-mode" data-highlighter="prismjs" data-ext="lua"><pre><code><span class="line"><span class="token keyword">for</span> line <span class="token keyword">in</span> io<span class="token punctuation">.</span><span class="token function">lines</span><span class="token punctuation">(</span><span class="token string">"test.txt"</span><span class="token punctuation">)</span> <span class="token keyword">do</span></span>
|
||||
<span class="line"> <span class="token function">print</span><span class="token punctuation">(</span>line<span class="token punctuation">)</span></span>
|
||||
<span class="line"><span class="token keyword">end</span></span>
|
||||
<span class="line"></span></code></pre><div class="line-numbers" aria-hidden="true" style="counter-reset:line-number 0;"><div class="line-number"></div><div class="line-number"></div><div class="line-number"></div></div></div><h3 id="io-open-filename-mode" tabindex="-1"><a class="header-anchor" href="#io-open-filename-mode"><span>io.open(filename [, mode])</span></a></h3><p>打开文件,返回文件句柄。</p><div class="language-lua line-numbers-mode" data-highlighter="prismjs" data-ext="lua"><pre><code><span class="line"><span class="token keyword">local</span> file <span class="token operator">=</span> io<span class="token punctuation">.</span><span class="token function">open</span><span class="token punctuation">(</span><span class="token string">"test.txt"</span><span class="token punctuation">,</span> <span class="token string">"r"</span><span class="token punctuation">)</span></span>
|
||||
<span class="line"><span class="token keyword">local</span> content <span class="token operator">=</span> file<span class="token punctuation">:</span><span class="token function">read</span><span class="token punctuation">(</span><span class="token string">"*a"</span><span class="token punctuation">)</span></span>
|
||||
<span class="line">file<span class="token punctuation">:</span><span class="token function">close</span><span class="token punctuation">(</span><span class="token punctuation">)</span></span>
|
||||
<span class="line"></span></code></pre><div class="line-numbers" aria-hidden="true" style="counter-reset:line-number 0;"><div class="line-number"></div><div class="line-number"></div><div class="line-number"></div></div></div><h3 id="io-output-file" tabindex="-1"><a class="header-anchor" href="#io-output-file"><span>io.output([file])</span></a></h3><p>设置默认输出文件。</p><div class="language-lua line-numbers-mode" data-highlighter="prismjs" data-ext="lua"><pre><code><span class="line">io<span class="token punctuation">.</span><span class="token function">output</span><span class="token punctuation">(</span><span class="token string">"output.txt"</span><span class="token punctuation">)</span></span>
|
||||
<span class="line"></span></code></pre><div class="line-numbers" aria-hidden="true" style="counter-reset:line-number 0;"><div class="line-number"></div></div></div><h3 id="io-popen-prog-mode" tabindex="-1"><a class="header-anchor" href="#io-popen-prog-mode"><span>io.popen(prog [, mode])</span></a></h3><p>启动程序并返回文件句柄。</p><div class="language-lua line-numbers-mode" data-highlighter="prismjs" data-ext="lua"><pre><code><span class="line"><span class="token keyword">local</span> file <span class="token operator">=</span> io<span class="token punctuation">.</span><span class="token function">popen</span><span class="token punctuation">(</span><span class="token string">"ls"</span><span class="token punctuation">,</span> <span class="token string">"r"</span><span class="token punctuation">)</span></span>
|
||||
<span class="line"><span class="token keyword">local</span> output <span class="token operator">=</span> file<span class="token punctuation">:</span><span class="token function">read</span><span class="token punctuation">(</span><span class="token string">"*a"</span><span class="token punctuation">)</span></span>
|
||||
<span class="line">file<span class="token punctuation">:</span><span class="token function">close</span><span class="token punctuation">(</span><span class="token punctuation">)</span></span>
|
||||
<span class="line"></span></code></pre><div class="line-numbers" aria-hidden="true" style="counter-reset:line-number 0;"><div class="line-number"></div><div class="line-number"></div><div class="line-number"></div></div></div><h3 id="io-read" tabindex="-1"><a class="header-anchor" href="#io-read"><span>io.read(...)</span></a></h3><p>从默认输入文件读取数据。</p><div class="language-lua line-numbers-mode" data-highlighter="prismjs" data-ext="lua"><pre><code><span class="line"><span class="token keyword">local</span> input <span class="token operator">=</span> io<span class="token punctuation">.</span><span class="token function">read</span><span class="token punctuation">(</span><span class="token punctuation">)</span></span>
|
||||
<span class="line"><span class="token function">print</span><span class="token punctuation">(</span>input<span class="token punctuation">)</span></span>
|
||||
<span class="line"></span></code></pre><div class="line-numbers" aria-hidden="true" style="counter-reset:line-number 0;"><div class="line-number"></div><div class="line-number"></div></div></div><h3 id="io-tmpfile" tabindex="-1"><a class="header-anchor" href="#io-tmpfile"><span>io.tmpfile()</span></a></h3><p>返回临时文件的句柄。</p><div class="language-lua line-numbers-mode" data-highlighter="prismjs" data-ext="lua"><pre><code><span class="line"><span class="token keyword">local</span> file <span class="token operator">=</span> io<span class="token punctuation">.</span><span class="token function">tmpfile</span><span class="token punctuation">(</span><span class="token punctuation">)</span></span>
|
||||
<span class="line">file<span class="token punctuation">:</span><span class="token function">write</span><span class="token punctuation">(</span><span class="token string">"temp data"</span><span class="token punctuation">)</span></span>
|
||||
<span class="line">file<span class="token punctuation">:</span><span class="token function">close</span><span class="token punctuation">(</span><span class="token punctuation">)</span></span>
|
||||
<span class="line"></span></code></pre><div class="line-numbers" aria-hidden="true" style="counter-reset:line-number 0;"><div class="line-number"></div><div class="line-number"></div><div class="line-number"></div></div></div><h3 id="io-type-file" tabindex="-1"><a class="header-anchor" href="#io-type-file"><span>io.type(file)</span></a></h3><p>检查文件是否是打开的文件句柄。</p><div class="language-lua line-numbers-mode" data-highlighter="prismjs" data-ext="lua"><pre><code><span class="line"><span class="token keyword">local</span> file <span class="token operator">=</span> io<span class="token punctuation">.</span><span class="token function">open</span><span class="token punctuation">(</span><span class="token string">"test.txt"</span><span class="token punctuation">,</span> <span class="token string">"r"</span><span class="token punctuation">)</span></span>
|
||||
<span class="line"><span class="token function">print</span><span class="token punctuation">(</span>io<span class="token punctuation">.</span><span class="token function">type</span><span class="token punctuation">(</span>file<span class="token punctuation">)</span><span class="token punctuation">)</span> <span class="token comment">-- file</span></span>
|
||||
<span class="line"></span></code></pre><div class="line-numbers" aria-hidden="true" style="counter-reset:line-number 0;"><div class="line-number"></div><div class="line-number"></div></div></div><h3 id="io-write" tabindex="-1"><a class="header-anchor" href="#io-write"><span>io.write(...)</span></a></h3><p>写入数据到默认输出文件。</p><div class="language-lua line-numbers-mode" data-highlighter="prismjs" data-ext="lua"><pre><code><span class="line">io<span class="token punctuation">.</span><span class="token function">write</span><span class="token punctuation">(</span><span class="token string">"Hello, World!\n"</span><span class="token punctuation">)</span></span>
|
||||
<span class="line"></span></code></pre><div class="line-numbers" aria-hidden="true" style="counter-reset:line-number 0;"><div class="line-number"></div></div></div><hr><h2 id="协程库-coroutine" tabindex="-1"><a class="header-anchor" href="#协程库-coroutine"><span>协程库 (coroutine)</span></a></h2><h3 id="coroutine-create-f" tabindex="-1"><a class="header-anchor" href="#coroutine-create-f"><span>coroutine.create(f)</span></a></h3><p>创建新的协程。</p><div class="language-lua line-numbers-mode" data-highlighter="prismjs" data-ext="lua"><pre><code><span class="line">co <span class="token operator">=</span> coroutine<span class="token punctuation">.</span><span class="token function">create</span><span class="token punctuation">(</span><span class="token keyword">function</span><span class="token punctuation">(</span><span class="token punctuation">)</span></span>
|
||||
<span class="line"> <span class="token function">print</span><span class="token punctuation">(</span><span class="token string">"Coroutine started"</span><span class="token punctuation">)</span></span>
|
||||
<span class="line"><span class="token keyword">end</span><span class="token punctuation">)</span></span>
|
||||
<span class="line"></span></code></pre><div class="line-numbers" aria-hidden="true" style="counter-reset:line-number 0;"><div class="line-number"></div><div class="line-number"></div><div class="line-number"></div></div></div><h3 id="coroutine-resume-co-val1" tabindex="-1"><a class="header-anchor" href="#coroutine-resume-co-val1"><span>coroutine.resume(co [, val1, ...])</span></a></h3><p>继续或启动协程。</p><div class="language-lua line-numbers-mode" data-highlighter="prismjs" data-ext="lua"><pre><code><span class="line">coroutine<span class="token punctuation">.</span><span class="token function">resume</span><span class="token punctuation">(</span>co<span class="token punctuation">)</span></span>
|
||||
<span class="line"></span></code></pre><div class="line-numbers" aria-hidden="true" style="counter-reset:line-number 0;"><div class="line-number"></div></div></div><h3 id="coroutine-running" tabindex="-1"><a class="header-anchor" href="#coroutine-running"><span>coroutine.running()</span></a></h3><p>返回当前运行的协程。</p><div class="language-lua line-numbers-mode" data-highlighter="prismjs" data-ext="lua"><pre><code><span class="line"><span class="token function">print</span><span class="token punctuation">(</span>coroutine<span class="token punctuation">.</span><span class="token function">running</span><span class="token punctuation">(</span><span class="token punctuation">)</span><span class="token punctuation">)</span></span>
|
||||
<span class="line"></span></code></pre><div class="line-numbers" aria-hidden="true" style="counter-reset:line-number 0;"><div class="line-number"></div></div></div><h3 id="coroutine-status-co" tabindex="-1"><a class="header-anchor" href="#coroutine-status-co"><span>coroutine.status(co)</span></a></h3><p>返回协程的状态。</p><div class="language-lua line-numbers-mode" data-highlighter="prismjs" data-ext="lua"><pre><code><span class="line"><span class="token function">print</span><span class="token punctuation">(</span>coroutine<span class="token punctuation">.</span><span class="token function">status</span><span class="token punctuation">(</span>co<span class="token punctuation">)</span><span class="token punctuation">)</span> <span class="token comment">-- running, suspended, normal, dead</span></span>
|
||||
<span class="line"></span></code></pre><div class="line-numbers" aria-hidden="true" style="counter-reset:line-number 0;"><div class="line-number"></div></div></div><h3 id="coroutine-wrap-f" tabindex="-1"><a class="header-anchor" href="#coroutine-wrap-f"><span>coroutine.wrap(f)</span></a></h3><p>创建包装函数的函数。</p><div class="language-lua line-numbers-mode" data-highlighter="prismjs" data-ext="lua"><pre><code><span class="line">co <span class="token operator">=</span> coroutine<span class="token punctuation">.</span><span class="token function">create</span><span class="token punctuation">(</span><span class="token keyword">function</span><span class="token punctuation">(</span><span class="token punctuation">)</span></span>
|
||||
<span class="line"> <span class="token function">print</span><span class="token punctuation">(</span><span class="token string">"Coroutine"</span><span class="token punctuation">)</span></span>
|
||||
<span class="line"><span class="token keyword">end</span><span class="token punctuation">)</span></span>
|
||||
<span class="line"><span class="token keyword">local</span> wrapped <span class="token operator">=</span> coroutine<span class="token punctuation">.</span><span class="token function">wrap</span><span class="token punctuation">(</span>co<span class="token punctuation">)</span></span>
|
||||
<span class="line"><span class="token function">wrapped</span><span class="token punctuation">(</span><span class="token punctuation">)</span></span>
|
||||
<span class="line"></span></code></pre><div class="line-numbers" aria-hidden="true" style="counter-reset:line-number 0;"><div class="line-number"></div><div class="line-number"></div><div class="line-number"></div><div class="line-number"></div><div class="line-number"></div></div></div><h3 id="coroutine-yield" tabindex="-1"><a class="header-anchor" href="#coroutine-yield"><span>coroutine.yield(...)</span></a></h3><p>挂起当前协程。</p><div class="language-lua line-numbers-mode" data-highlighter="prismjs" data-ext="lua"><pre><code><span class="line">coroutine<span class="token punctuation">.</span><span class="token function">yield</span><span class="token punctuation">(</span><span class="token string">"value"</span><span class="token punctuation">)</span></span>
|
||||
<span class="line"></span></code></pre><div class="line-numbers" aria-hidden="true" style="counter-reset:line-number 0;"><div class="line-number"></div></div></div><hr><h2 id="表库-table" tabindex="-1"><a class="header-anchor" href="#表库-table"><span>表库 (table)</span></a></h2><h3 id="table-concat-list-sep-i-j" tabindex="-1"><a class="header-anchor" href="#table-concat-list-sep-i-j"><span>table.concat(list [, sep [, i [, j]])</span></a></h3><p>连接表中的元素。</p><div class="language-lua line-numbers-mode" data-highlighter="prismjs" data-ext="lua"><pre><code><span class="line">t <span class="token operator">=</span> <span class="token punctuation">{</span><span class="token string">"a"</span><span class="token punctuation">,</span> <span class="token string">"b"</span><span class="token punctuation">,</span> <span class="token string">"c"</span><span class="token punctuation">}</span></span>
|
||||
<span class="line"><span class="token function">print</span><span class="token punctuation">(</span>table<span class="token punctuation">.</span><span class="token function">concat</span><span class="token punctuation">(</span>t<span class="token punctuation">,</span> <span class="token string">", "</span><span class="token punctuation">)</span><span class="token punctuation">)</span> <span class="token comment">-- a, b, c</span></span>
|
||||
<span class="line"></span></code></pre><div class="line-numbers" aria-hidden="true" style="counter-reset:line-number 0;"><div class="line-number"></div><div class="line-number"></div></div></div><h3 id="table-insert-list-pos-value" tabindex="-1"><a class="header-anchor" href="#table-insert-list-pos-value"><span>table.insert(list, [pos,] value)</span></a></h3><p>在表中插入元素。</p><div class="language-lua line-numbers-mode" data-highlighter="prismjs" data-ext="lua"><pre><code><span class="line">t <span class="token operator">=</span> <span class="token punctuation">{</span><span class="token number">1</span><span class="token punctuation">,</span> <span class="token number">2</span><span class="token punctuation">,</span> <span class="token number">3</span><span class="token punctuation">}</span></span>
|
||||
<span class="line">table<span class="token punctuation">.</span><span class="token function">insert</span><span class="token punctuation">(</span>t<span class="token punctuation">,</span> <span class="token number">4</span><span class="token punctuation">)</span></span>
|
||||
<span class="line"></span></code></pre><div class="line-numbers" aria-hidden="true" style="counter-reset:line-number 0;"><div class="line-number"></div><div class="line-number"></div></div></div><h3 id="table-maxn-t" tabindex="-1"><a class="header-anchor" href="#table-maxn-t"><span>table.maxn(t)</span></a></h3><p>返回表的最大数字索引(已弃用,使用 # 运算符)。</p><div class="language-lua line-numbers-mode" data-highlighter="prismjs" data-ext="lua"><pre><code><span class="line">t <span class="token operator">=</span> <span class="token punctuation">{</span><span class="token number">1</span><span class="token punctuation">,</span> <span class="token number">2</span><span class="token punctuation">,</span> <span class="token keyword">nil</span><span class="token punctuation">,</span> <span class="token number">4</span><span class="token punctuation">}</span></span>
|
||||
<span class="line"><span class="token function">print</span><span class="token punctuation">(</span>table<span class="token punctuation">.</span><span class="token function">maxn</span><span class="token punctuation">(</span>t<span class="token punctuation">)</span><span class="token punctuation">)</span> <span class="token comment">-- 4</span></span>
|
||||
<span class="line"></span></code></pre><div class="line-numbers" aria-hidden="true" style="counter-reset:line-number 0;"><div class="line-number"></div><div class="line-number"></div></div></div><h3 id="table-remove-list-pos" tabindex="-1"><a class="header-anchor" href="#table-remove-list-pos"><span>table.remove(list [, pos])</span></a></h3><p>从表中删除元素。</p><div class="language-lua line-numbers-mode" data-highlighter="prismjs" data-ext="lua"><pre><code><span class="line">t <span class="token operator">=</span> <span class="token punctuation">{</span><span class="token number">1</span><span class="token punctuation">,</span> <span class="token number">2</span><span class="token punctuation">,</span> <span class="token number">3</span><span class="token punctuation">}</span></span>
|
||||
<span class="line">table<span class="token punctuation">.</span><span class="token function">remove</span><span class="token punctuation">(</span>t<span class="token punctuation">,</span> <span class="token number">2</span><span class="token punctuation">)</span></span>
|
||||
<span class="line"></span></code></pre><div class="line-numbers" aria-hidden="true" style="counter-reset:line-number 0;"><div class="line-number"></div><div class="line-number"></div></div></div><h3 id="table-sort-list-comp" tabindex="-1"><a class="header-anchor" href="#table-sort-list-comp"><span>table.sort(list [, comp])</span></a></h3><p>对表进行排序。</p><div class="language-lua line-numbers-mode" data-highlighter="prismjs" data-ext="lua"><pre><code><span class="line">t <span class="token operator">=</span> <span class="token punctuation">{</span><span class="token number">3</span><span class="token punctuation">,</span> <span class="token number">1</span><span class="token punctuation">,</span> <span class="token number">4</span><span class="token punctuation">,</span> <span class="token number">2</span><span class="token punctuation">}</span></span>
|
||||
<span class="line">table<span class="token punctuation">.</span><span class="token function">sort</span><span class="token punctuation">(</span>t<span class="token punctuation">)</span></span>
|
||||
<span class="line"></span></code></pre><div class="line-numbers" aria-hidden="true" style="counter-reset:line-number 0;"><div class="line-number"></div><div class="line-number"></div></div></div><hr><h2 id="调试库-debug" tabindex="-1"><a class="header-anchor" href="#调试库-debug"><span>调试库 (debug)</span></a></h2><h3 id="debug-debug" tabindex="-1"><a class="header-anchor" href="#debug-debug"><span>debug.debug()</span></a></h3><p>进入调试模式。</p><div class="language-lua line-numbers-mode" data-highlighter="prismjs" data-ext="lua"><pre><code><span class="line">debug<span class="token punctuation">.</span><span class="token function">debug</span><span class="token punctuation">(</span><span class="token punctuation">)</span></span>
|
||||
<span class="line"></span></code></pre><div class="line-numbers" aria-hidden="true" style="counter-reset:line-number 0;"><div class="line-number"></div></div></div><h3 id="debug-getfenv-object" tabindex="-1"><a class="header-anchor" href="#debug-getfenv-object"><span>debug.getfenv(object)</span></a></h3><p>返回对象的环境。</p><div class="language-lua line-numbers-mode" data-highlighter="prismjs" data-ext="lua"><pre><code><span class="line"><span class="token function">print</span><span class="token punctuation">(</span>debug<span class="token punctuation">.</span><span class="token function">getfenv</span><span class="token punctuation">(</span><span class="token keyword">function</span><span class="token punctuation">(</span><span class="token punctuation">)</span> <span class="token keyword">return</span> x <span class="token keyword">end</span><span class="token punctuation">)</span><span class="token punctuation">)</span></span>
|
||||
<span class="line"></span></code></pre><div class="line-numbers" aria-hidden="true" style="counter-reset:line-number 0;"><div class="line-number"></div></div></div><h3 id="debug-gethook" tabindex="-1"><a class="header-anchor" href="#debug-gethook"><span>debug.gethook()</span></a></h3><p>返回当前的钩子函数。</p><div class="language-lua line-numbers-mode" data-highlighter="prismjs" data-ext="lua"><pre><code><span class="line"><span class="token function">print</span><span class="token punctuation">(</span>debug<span class="token punctuation">.</span><span class="token function">gethook</span><span class="token punctuation">(</span><span class="token punctuation">)</span><span class="token punctuation">)</span></span>
|
||||
<span class="line"></span></code></pre><div class="line-numbers" aria-hidden="true" style="counter-reset:line-number 0;"><div class="line-number"></div></div></div><h3 id="debug-getinfo-thread-f-what" tabindex="-1"><a class="header-anchor" href="#debug-getinfo-thread-f-what"><span>debug.getinfo([thread [, f [, what]])</span></a></h3><p>返回函数的信息。</p><div class="language-lua line-numbers-mode" data-highlighter="prismjs" data-ext="lua"><pre><code><span class="line"><span class="token function">print</span><span class="token punctuation">(</span>debug<span class="token punctuation">.</span><span class="token function">getinfo</span><span class="token punctuation">(</span><span class="token number">1</span><span class="token punctuation">)</span><span class="token punctuation">)</span></span>
|
||||
<span class="line"></span></code></pre><div class="line-numbers" aria-hidden="true" style="counter-reset:line-number 0;"><div class="line-number"></div></div></div><h3 id="debug-getlocal-thread-f-loc" tabindex="-1"><a class="header-anchor" href="#debug-getlocal-thread-f-loc"><span>debug.getlocal([thread [, f [, loc]])</span></a></h3><p>返回函数的局部变量。</p><div class="language-lua line-numbers-mode" data-highlighter="prismjs" data-ext="lua"><pre><code><span class="line"><span class="token function">print</span><span class="token punctuation">(</span>debug<span class="token punctuation">.</span><span class="token function">getlocal</span><span class="token punctuation">(</span><span class="token number">1</span><span class="token punctuation">,</span> <span class="token number">1</span><span class="token punctuation">)</span><span class="token punctuation">)</span></span>
|
||||
<span class="line"></span></code></pre><div class="line-numbers" aria-hidden="true" style="counter-reset:line-number 0;"><div class="line-number"></div></div></div><h3 id="debug-getmetatable-object" tabindex="-1"><a class="header-anchor" href="#debug-getmetatable-object"><span>debug.getmetatable(object)</span></a></h3><p>返回对象的元表。</p><div class="language-lua line-numbers-mode" data-highlighter="prismjs" data-ext="lua"><pre><code><span class="line">t <span class="token operator">=</span> <span class="token punctuation">{</span><span class="token punctuation">}</span></span>
|
||||
<span class="line">mt <span class="token operator">=</span> <span class="token punctuation">{</span>__add <span class="token operator">=</span> <span class="token keyword">function</span><span class="token punctuation">(</span>a<span class="token punctuation">,</span> b<span class="token punctuation">)</span> <span class="token keyword">return</span> a <span class="token operator">+</span> b <span class="token keyword">end</span><span class="token punctuation">}</span></span>
|
||||
<span class="line"><span class="token function">setmetatable</span><span class="token punctuation">(</span>t<span class="token punctuation">,</span> mt<span class="token punctuation">)</span></span>
|
||||
<span class="line"><span class="token function">print</span><span class="token punctuation">(</span>debug<span class="token punctuation">.</span><span class="token function">getmetatable</span><span class="token punctuation">(</span>t<span class="token punctuation">)</span><span class="token punctuation">.</span>__add<span class="token punctuation">)</span></span>
|
||||
<span class="line"></span></code></pre><div class="line-numbers" aria-hidden="true" style="counter-reset:line-number 0;"><div class="line-number"></div><div class="line-number"></div><div class="line-number"></div><div class="line-number"></div></div></div><h3 id="debug-getregistry" tabindex="-1"><a class="header-anchor" href="#debug-getregistry"><span>debug.getregistry()</span></a></h3><p>返回注册表。</p><div class="language-lua line-numbers-mode" data-highlighter="prismjs" data-ext="lua"><pre><code><span class="line"><span class="token function">print</span><span class="token punctuation">(</span>debug<span class="token punctuation">.</span><span class="token function">getregistry</span><span class="token punctuation">(</span><span class="token punctuation">)</span><span class="token punctuation">)</span></span>
|
||||
<span class="line"></span></code></pre><div class="line-numbers" aria-hidden="true" style="counter-reset:line-number 0;"><div class="line-number"></div></div></div><h3 id="debug-getupvalue-f-i" tabindex="-1"><a class="header-anchor" href="#debug-getupvalue-f-i"><span>debug.getupvalue(f [, i])</span></a></h3><p>返回函数的上值。</p><div class="language-lua line-numbers-mode" data-highlighter="prismjs" data-ext="lua"><pre><code><span class="line"><span class="token function">print</span><span class="token punctuation">(</span>debug<span class="token punctuation">.</span><span class="token function">getupvalue</span><span class="token punctuation">(</span><span class="token number">1</span><span class="token punctuation">)</span><span class="token punctuation">)</span></span>
|
||||
<span class="line"></span></code></pre><div class="line-numbers" aria-hidden="true" style="counter-reset:line-number 0;"><div class="line-number"></div></div></div><h3 id="debug-setfenv-object-table" tabindex="-1"><a class="header-anchor" href="#debug-setfenv-object-table"><span>debug.setfenv(object, table)</span></a></h3><p>设置对象的环境。</p><div class="language-lua line-numbers-mode" data-highlighter="prismjs" data-ext="lua"><pre><code><span class="line">debug<span class="token punctuation">.</span><span class="token function">setfenv</span><span class="token punctuation">(</span><span class="token keyword">function</span><span class="token punctuation">(</span><span class="token punctuation">)</span> <span class="token keyword">return</span> x <span class="token keyword">end</span><span class="token punctuation">,</span> <span class="token punctuation">{</span><span class="token punctuation">}</span><span class="token punctuation">)</span></span>
|
||||
<span class="line"></span></code></pre><div class="line-numbers" aria-hidden="true" style="counter-reset:line-number 0;"><div class="line-number"></div></div></div><h3 id="debug-sethook-hook-mask-count" tabindex="-1"><a class="header-anchor" href="#debug-sethook-hook-mask-count"><span>debug.sethook(hook, mask [, count])</span></a></h3><p>设置钩子函数。</p><div class="language-lua line-numbers-mode" data-highlighter="prismjs" data-ext="lua"><pre><code><span class="line">debug<span class="token punctuation">.</span><span class="token function">sethook</span><span class="token punctuation">(</span><span class="token keyword">function</span><span class="token punctuation">(</span><span class="token punctuation">)</span> <span class="token function">print</span><span class="token punctuation">(</span><span class="token string">"Hook called"</span><span class="token punctuation">)</span> <span class="token keyword">end</span><span class="token punctuation">,</span> <span class="token string">"c"</span><span class="token punctuation">)</span></span>
|
||||
<span class="line"></span></code></pre><div class="line-numbers" aria-hidden="true" style="counter-reset:line-number 0;"><div class="line-number"></div></div></div><h3 id="debug-setlocal-thread-f-level-value" tabindex="-1"><a class="header-anchor" href="#debug-setlocal-thread-f-level-value"><span>debug.setlocal([thread [, f,] level, value)</span></a></h3><p>设置函数的局部变量。</p><div class="language-lua line-numbers-mode" data-highlighter="prismjs" data-ext="lua"><pre><code><span class="line">debug<span class="token punctuation">.</span><span class="token function">setlocal</span><span class="token punctuation">(</span><span class="token number">1</span><span class="token punctuation">,</span> <span class="token number">1</span><span class="token punctuation">,</span> <span class="token string">"value"</span><span class="token punctuation">)</span></span>
|
||||
<span class="line"></span></code></pre><div class="line-numbers" aria-hidden="true" style="counter-reset:line-number 0;"><div class="line-number"></div></div></div><h3 id="debug-setmetatable-object-table" tabindex="-1"><a class="header-anchor" href="#debug-setmetatable-object-table"><span>debug.setmetatable(object, table)</span></a></h3><p>设置对象的元表。</p><div class="language-lua line-numbers-mode" data-highlighter="prismjs" data-ext="lua"><pre><code><span class="line">debug<span class="token punctuation">.</span><span class="token function">setmetatable</span><span class="token punctuation">(</span>t<span class="token punctuation">,</span> mt<span class="token punctuation">)</span></span>
|
||||
<span class="line"></span></code></pre><div class="line-numbers" aria-hidden="true" style="counter-reset:line-number 0;"><div class="line-number"></div></div></div><h3 id="debug-setupvalue-f-i-value" tabindex="-1"><a class="header-anchor" href="#debug-setupvalue-f-i-value"><span>debug.setupvalue(f [, i,] value)</span></a></h3><p>设置函数的上值。</p><div class="language-lua line-numbers-mode" data-highlighter="prismjs" data-ext="lua"><pre><code><span class="line">debug<span class="token punctuation">.</span><span class="token function">setupvalue</span><span class="token punctuation">(</span><span class="token number">1</span><span class="token punctuation">,</span> <span class="token number">1</span><span class="token punctuation">,</span> <span class="token string">"newvalue"</span><span class="token punctuation">)</span></span>
|
||||
<span class="line"></span></code></pre><div class="line-numbers" aria-hidden="true" style="counter-reset:line-number 0;"><div class="line-number"></div></div></div><h3 id="debug-traceback-thread-message-level" tabindex="-1"><a class="header-anchor" href="#debug-traceback-thread-message-level"><span>debug.traceback([thread [, message [, level]])</span></a></h3><p>返回调用栈的跟踪信息。</p><div class="language-lua line-numbers-mode" data-highlighter="prismjs" data-ext="lua"><pre><code><span class="line"><span class="token function">print</span><span class="token punctuation">(</span>debug<span class="token punctuation">.</span><span class="token function">traceback</span><span class="token punctuation">(</span><span class="token punctuation">)</span><span class="token punctuation">)</span></span>
|
||||
<span class="line"></span></code></pre><div class="line-numbers" aria-hidden="true" style="counter-reset:line-number 0;"><div class="line-number"></div></div></div><hr><h2 id="位运算库-bit" tabindex="-1"><a class="header-anchor" href="#位运算库-bit"><span>位运算库 (bit)</span></a></h2><h3 id="bit-band-x1-x2" tabindex="-1"><a class="header-anchor" href="#bit-band-x1-x2"><span>bit.band(x1, x2 [, ...])</span></a></h3><p>按位与操作。</p><div class="language-lua line-numbers-mode" data-highlighter="prismjs" data-ext="lua"><pre><code><span class="line"><span class="token function">print</span><span class="token punctuation">(</span>bit<span class="token punctuation">.</span><span class="token function">band</span><span class="token punctuation">(</span><span class="token number">0x0F</span><span class="token punctuation">,</span> <span class="token number">0x0F</span><span class="token punctuation">)</span><span class="token punctuation">)</span> <span class="token comment">-- 0x0F</span></span>
|
||||
<span class="line"></span></code></pre><div class="line-numbers" aria-hidden="true" style="counter-reset:line-number 0;"><div class="line-number"></div></div></div><h3 id="bit-bnot-x" tabindex="-1"><a class="header-anchor" href="#bit-bnot-x"><span>bit.bnot(x)</span></a></h3><p>按位非操作。</p><div class="language-lua line-numbers-mode" data-highlighter="prismjs" data-ext="lua"><pre><code><span class="line"><span class="token function">print</span><span class="token punctuation">(</span>bit<span class="token punctuation">.</span><span class="token function">bnot</span><span class="token punctuation">(</span><span class="token number">0x0F</span><span class="token punctuation">)</span><span class="token punctuation">)</span> <span class="token comment">-- 0xFFFFFFF0</span></span>
|
||||
<span class="line"></span></code></pre><div class="line-numbers" aria-hidden="true" style="counter-reset:line-number 0;"><div class="line-number"></div></div></div><h3 id="bit-bor-x1-x2" tabindex="-1"><a class="header-anchor" href="#bit-bor-x1-x2"><span>bit.bor(x1, x2 [, ...])</span></a></h3><p>按位或操作。</p><div class="language-lua line-numbers-mode" data-highlighter="prismjs" data-ext="lua"><pre><code><span class="line"><span class="token function">print</span><span class="token punctuation">(</span>bit<span class="token punctuation">.</span><span class="token function">bor</span><span class="token punctuation">(</span><span class="token number">0x0F</span><span class="token punctuation">,</span> <span class="token number">0x0F</span><span class="token punctuation">)</span><span class="token punctuation">)</span> <span class="token comment">-- 0x0F</span></span>
|
||||
<span class="line"></span></code></pre><div class="line-numbers" aria-hidden="true" style="counter-reset:line-number 0;"><div class="line-number"></div></div></div><h3 id="bit-bxor-x1-x2" tabindex="-1"><a class="header-anchor" href="#bit-bxor-x1-x2"><span>bit.bxor(x1, x2 [, ...])</span></a></h3><p>按位异或操作。</p><div class="language-lua line-numbers-mode" data-highlighter="prismjs" data-ext="lua"><pre><code><span class="line"><span class="token function">print</span><span class="token punctuation">(</span>bit<span class="token punctuation">.</span><span class="token function">bxor</span><span class="token punctuation">(</span><span class="token number">0x0F</span><span class="token punctuation">,</span> <span class="token number">0x0F</span><span class="token punctuation">)</span><span class="token punctuation">)</span> <span class="token comment">-- 0x00</span></span>
|
||||
<span class="line"></span></code></pre><div class="line-numbers" aria-hidden="true" style="counter-reset:line-number 0;"><div class="line-number"></div></div></div><h3 id="bit-lshift-x-disp" tabindex="-1"><a class="header-anchor" href="#bit-lshift-x-disp"><span>bit.lshift(x, disp)</span></a></h3><p>按位左移。</p><div class="language-lua line-numbers-mode" data-highlighter="prismjs" data-ext="lua"><pre><code><span class="line"><span class="token function">print</span><span class="token punctuation">(</span>bit<span class="token punctuation">.</span><span class="token function">lshift</span><span class="token punctuation">(</span><span class="token number">1</span><span class="token punctuation">,</span> <span class="token number">2</span><span class="token punctuation">)</span><span class="token punctuation">)</span> <span class="token comment">-- 4</span></span>
|
||||
<span class="line"></span></code></pre><div class="line-numbers" aria-hidden="true" style="counter-reset:line-number 0;"><div class="line-number"></div></div></div><h3 id="bit-rshift-x-disp" tabindex="-1"><a class="header-anchor" href="#bit-rshift-x-disp"><span>bit.rshift(x, disp)</span></a></h3><p>按位右移。</p><div class="language-lua line-numbers-mode" data-highlighter="prismjs" data-ext="lua"><pre><code><span class="line"><span class="token function">print</span><span class="token punctuation">(</span>bit<span class="token punctuation">.</span><span class="token function">rshift</span><span class="token punctuation">(</span><span class="token number">4</span><span class="token punctuation">,</span> <span class="token number">2</span><span class="token punctuation">)</span><span class="token punctuation">)</span> <span class="token comment">-- 1</span></span>
|
||||
<span class="line"></span></code></pre><div class="line-numbers" aria-hidden="true" style="counter-reset:line-number 0;"><div class="line-number"></div></div></div><h3 id="bit-arshift-x-disp" tabindex="-1"><a class="header-anchor" href="#bit-arshift-x-disp"><span>bit.arshift(x, disp)</span></a></h3><p>按位算术右移。</p><div class="language-lua line-numbers-mode" data-highlighter="prismjs" data-ext="lua"><pre><code><span class="line"><span class="token function">print</span><span class="token punctuation">(</span>bit<span class="token punctuation">.</span><span class="token function">arshift</span><span class="token punctuation">(</span><span class="token number">4</span><span class="token punctuation">,</span> <span class="token number">2</span><span class="token punctuation">)</span><span class="token punctuation">)</span> <span class="token comment">-- 1</span></span>
|
||||
<span class="line"></span></code></pre><div class="line-numbers" aria-hidden="true" style="counter-reset:line-number 0;"><div class="line-number"></div></div></div><h3 id="bit-rol-x-disp" tabindex="-1"><a class="header-anchor" href="#bit-rol-x-disp"><span>bit.rol(x, disp)</span></a></h3><p>循环左移。</p><div class="language-lua line-numbers-mode" data-highlighter="prismjs" data-ext="lua"><pre><code><span class="line"><span class="token function">print</span><span class="token punctuation">(</span>bit<span class="token punctuation">.</span><span class="token function">rol</span><span class="token punctuation">(</span><span class="token number">0x0F</span><span class="token punctuation">,</span> <span class="token number">4</span><span class="token punctuation">)</span><span class="token punctuation">)</span> <span class="token comment">-- 0xF0</span></span>
|
||||
<span class="line"></span></code></pre><div class="line-numbers" aria-hidden="true" style="counter-reset:line-number 0;"><div class="line-number"></div></div></div><h3 id="bit-ror-x-disp" tabindex="-1"><a class="header-anchor" href="#bit-ror-x-disp"><span>bit.ror(x, disp)</span></a></h3><p>循环右移。</p><div class="language-lua line-numbers-mode" data-highlighter="prismjs" data-ext="lua"><pre><code><span class="line"><span class="token function">print</span><span class="token punctuation">(</span>bit<span class="token punctuation">.</span><span class="token function">ror</span><span class="token punctuation">(</span><span class="token number">0x0F</span><span class="token punctuation">,</span> <span class="token number">4</span><span class="token punctuation">)</span><span class="token punctuation">)</span> <span class="token comment">-- 0x0F</span></span>
|
||||
<span class="line"></span></code></pre><div class="line-numbers" aria-hidden="true" style="counter-reset:line-number 0;"><div class="line-number"></div></div></div><h3 id="bit-tobit-x" tabindex="-1"><a class="header-anchor" href="#bit-tobit-x"><span>bit.tobit(x)</span></a></h3><p>转换为位字符串。</p><div class="language-lua line-numbers-mode" data-highlighter="prismjs" data-ext="lua"><pre><code><span class="line"><span class="token function">print</span><span class="token punctuation">(</span>bit<span class="token punctuation">.</span><span class="token function">tobit</span><span class="token punctuation">(</span><span class="token number">0x0F</span><span class="token punctuation">)</span><span class="token punctuation">)</span> <span class="token comment">-- 00001111</span></span>
|
||||
<span class="line"></span></code></pre><div class="line-numbers" aria-hidden="true" style="counter-reset:line-number 0;"><div class="line-number"></div></div></div><hr><h2 id="编码库-enc" tabindex="-1"><a class="header-anchor" href="#编码库-enc"><span>编码库 (enc)</span></a></h2><h3 id="enc-base64encode-input" tabindex="-1"><a class="header-anchor" href="#enc-base64encode-input"><span>enc.base64encode(input)</span></a></h3><p>将字符串编码为 Base64。</p><div class="language-lua line-numbers-mode" data-highlighter="prismjs" data-ext="lua"><pre><code><span class="line"><span class="token keyword">local</span> encoded <span class="token operator">=</span> enc<span class="token punctuation">.</span><span class="token function">base64encode</span><span class="token punctuation">(</span><span class="token string">"Hello World"</span><span class="token punctuation">)</span></span>
|
||||
<span class="line"><span class="token function">print</span><span class="token punctuation">(</span>encoded<span class="token punctuation">)</span></span>
|
||||
<span class="line"></span></code></pre><div class="line-numbers" aria-hidden="true" style="counter-reset:line-number 0;"><div class="line-number"></div><div class="line-number"></div></div></div><h3 id="enc-base64decode-input" tabindex="-1"><a class="header-anchor" href="#enc-base64decode-input"><span>enc.base64decode(input)</span></a></h3><p>将 Base64 字符串解码。</p><div class="language-lua line-numbers-mode" data-highlighter="prismjs" data-ext="lua"><pre><code><span class="line"><span class="token keyword">local</span> decoded <span class="token operator">=</span> enc<span class="token punctuation">.</span><span class="token function">base64decode</span><span class="token punctuation">(</span><span class="token string">"SGVsbG8gV29ybGxcmVvcmxvYg=="</span><span class="token punctuation">)</span></span>
|
||||
<span class="line"><span class="token function">print</span><span class="token punctuation">(</span>decoded<span class="token punctuation">)</span></span>
|
||||
<span class="line"></span></code></pre><div class="line-numbers" aria-hidden="true" style="counter-reset:line-number 0;"><div class="line-number"></div><div class="line-number"></div></div></div><hr><h2 id="包库-package" tabindex="-1"><a class="header-anchor" href="#包库-package"><span>包库 (package)</span></a></h2><h3 id="package-loaded" tabindex="-1"><a class="header-anchor" href="#package-loaded"><span>package.loaded</span></a></h3><p>已加载的包表。</p><div class="language-lua line-numbers-mode" data-highlighter="prismjs" data-ext="lua"><pre><code><span class="line"><span class="token function">print</span><span class="token punctuation">(</span>package<span class="token punctuation">.</span>loaded<span class="token punctuation">)</span></span>
|
||||
<span class="line"></span></code></pre><div class="line-numbers" aria-hidden="true" style="counter-reset:line-number 0;"><div class="line-number"></div></div></div><h3 id="package-loaders" tabindex="-1"><a class="header-anchor" href="#package-loaders"><span>package.loaders</span></a></h3><p>包加载器表。</p><div class="language-lua line-numbers-mode" data-highlighter="prismjs" data-ext="lua"><pre><code><span class="line"><span class="token function">print</span><span class="token punctuation">(</span>package<span class="token punctuation">.</span>loaders<span class="token punctuation">)</span></span>
|
||||
<span class="line"></span></code></pre><div class="line-numbers" aria-hidden="true" style="counter-reset:line-number 0;"><div class="line-number"></div></div></div><h3 id="package-loadlib-libname-initfunc" tabindex="-1"><a class="header-anchor" href="#package-loadlib-libname-initfunc"><span>package.loadlib(libname [, initfunc])</span></a></h3><p>加载 C 库。</p><div class="language-lua line-numbers-mode" data-highlighter="prismjs" data-ext="lua"><pre><code><span class="line">package<span class="token punctuation">.</span><span class="token function">loadlib</span><span class="token punctuation">(</span><span class="token string">"mylib"</span><span class="token punctuation">)</span></span>
|
||||
<span class="line"></span></code></pre><div class="line-numbers" aria-hidden="true" style="counter-reset:line-number 0;"><div class="line-number"></div></div></div><h3 id="package-path" tabindex="-1"><a class="header-anchor" href="#package-path"><span>package.path</span></a></h3><p>包搜索路径。</p><div class="language-lua line-numbers-mode" data-highlighter="prismjs" data-ext="lua"><pre><code><span class="line"><span class="token function">print</span><span class="token punctuation">(</span>package<span class="token punctuation">.</span>path<span class="token punctuation">)</span></span>
|
||||
<span class="line"></span></code></pre><div class="line-numbers" aria-hidden="true" style="counter-reset:line-number 0;"><div class="line-number"></div></div></div><h3 id="package-searchpath-name-path-sep-rep" tabindex="-1"><a class="header-anchor" href="#package-searchpath-name-path-sep-rep"><span>package.searchpath(name [, path [, sep [, rep]])</span></a></h3><p>搜索包路径。</p><div class="language-lua line-numbers-mode" data-highlighter="prismjs" data-ext="lua"><pre><code><span class="line"><span class="token function">print</span><span class="token punctuation">(</span>package<span class="token punctuation">.</span><span class="token function">searchpath</span><span class="token punctuation">(</span><span class="token string">"mylib"</span><span class="token punctuation">)</span><span class="token punctuation">)</span></span>
|
||||
<span class="line"></span></code></pre><div class="line-numbers" aria-hidden="true" style="counter-reset:line-number 0;"><div class="line-number"></div></div></div><h3 id="package-seeall-name" tabindex="-1"><a class="header-anchor" href="#package-seeall-name"><span>package.seeall([name])</span></a></h3><p>列出所有已加载的包。</p><div class="language-lua line-numbers-mode" data-highlighter="prismjs" data-ext="lua"><pre><code><span class="line"><span class="token function">print</span><span class="token punctuation">(</span>package<span class="token punctuation">.</span><span class="token function">seeall</span><span class="token punctuation">(</span><span class="token punctuation">)</span><span class="token punctuation">)</span></span>
|
||||
<span class="line"></span></code></pre><div class="line-numbers" aria-hidden="true" style="counter-reset:line-number 0;"><div class="line-number"></div></div></div><hr><h2 id="使用示例" tabindex="-1"><a class="header-anchor" href="#使用示例"><span>使用示例</span></a></h2><h3 id="交互式-lua-shell" tabindex="-1"><a class="header-anchor" href="#交互式-lua-shell"><span>交互式 Lua Shell</span></a></h3><p>使用 <code>lua --shell</code> 进入交互模式:</p><div class="language-text line-numbers-mode" data-highlighter="prismjs" data-ext="text"><pre><code><span class="line">lua --shell</span>
|
||||
<span class="line">====================================</span>
|
||||
<span class="line"> Lua Interactive Shell</span>
|
||||
<span class="line">====================================</span>
|
||||
<span class="line">Type 'exit' or 'quit' to exit</span>
|
||||
<span class="line"></span>
|
||||
<span class="line">lua> print("Hello, World!")</span>
|
||||
<span class="line">Hello, World!</span>
|
||||
<span class="line"></span>
|
||||
<span class="line">lua> os.gethostname()</span>
|
||||
<span class="line">myserver</span>
|
||||
<span class="line"></span>
|
||||
<span class="line">lua> os.sha256("Hello")</span>
|
||||
<span class="line">a591a6d40bf420404a011733cfb7b1d12e</span>
|
||||
<span class="line"></span>
|
||||
<span class="line">lua> exit</span>
|
||||
<span class="line">Exiting Lua shell...</span>
|
||||
<span class="line"></span></code></pre><div class="line-numbers" aria-hidden="true" style="counter-reset:line-number 0;"><div class="line-number"></div><div class="line-number"></div><div class="line-number"></div><div class="line-number"></div><div class="line-number"></div><div class="line-number"></div><div class="line-number"></div><div class="line-number"></div><div class="line-number"></div><div class="line-number"></div><div class="line-number"></div><div class="line-number"></div><div class="line-number"></div><div class="line-number"></div><div class="line-number"></div><div class="line-number"></div><div class="line-number"></div></div></div><h3 id="执行-lua-脚本文件" tabindex="-1"><a class="header-anchor" href="#执行-lua-脚本文件"><span>执行 Lua 脚本文件</span></a></h3><div class="language-lua line-numbers-mode" data-highlighter="prismjs" data-ext="lua"><pre><code><span class="line">lua script<span class="token punctuation">.</span>lua</span>
|
||||
<span class="line"></span></code></pre><div class="line-numbers" aria-hidden="true" style="counter-reset:line-number 0;"><div class="line-number"></div></div></div><h3 id="系统信息查询" tabindex="-1"><a class="header-anchor" href="#系统信息查询"><span>系统信息查询</span></a></h3><div class="language-lua line-numbers-mode" data-highlighter="prismjs" data-ext="lua"><pre><code><span class="line"><span class="token function">print</span><span class="token punctuation">(</span><span class="token string">"Hostname:"</span><span class="token punctuation">,</span> os<span class="token punctuation">.</span><span class="token function">gethostname</span><span class="token punctuation">(</span><span class="token punctuation">)</span><span class="token punctuation">)</span></span>
|
||||
<span class="line"><span class="token function">print</span><span class="token punctuation">(</span><span class="token string">"Username:"</span><span class="token punctuation">,</span> os<span class="token punctuation">.</span><span class="token function">getusername</span><span class="token punctuation">(</span><span class="token punctuation">)</span><span class="token punctuation">)</span></span>
|
||||
<span class="line"><span class="token function">print</span><span class="token punctuation">(</span><span class="token string">"Is Admin:"</span><span class="token punctuation">,</span> os<span class="token punctuation">.</span><span class="token function">isadmin</span><span class="token punctuation">(</span><span class="token punctuation">)</span><span class="token punctuation">)</span></span>
|
||||
<span class="line"><span class="token function">print</span><span class="token punctuation">(</span><span class="token string">"SHA256:"</span><span class="token punctuation">,</span> os<span class="token punctuation">.</span><span class="token function">sha256</span><span class="token punctuation">(</span><span class="token string">"Hello"</span><span class="token punctuation">)</span><span class="token punctuation">)</span></span>
|
||||
<span class="line"></span></code></pre><div class="line-numbers" aria-hidden="true" style="counter-reset:line-number 0;"><div class="line-number"></div><div class="line-number"></div><div class="line-number"></div><div class="line-number"></div></div></div><h3 id="环境变量操作" tabindex="-1"><a class="header-anchor" href="#环境变量操作"><span>环境变量操作</span></a></h3><div class="language-lua line-numbers-mode" data-highlighter="prismjs" data-ext="lua"><pre><code><span class="line">os<span class="token punctuation">.</span><span class="token function">setenv</span><span class="token punctuation">(</span><span class="token string">"MYVAR"</span><span class="token punctuation">,</span> <span class="token string">"value"</span><span class="token punctuation">)</span></span>
|
||||
<span class="line"><span class="token function">print</span><span class="token punctuation">(</span>os<span class="token punctuation">.</span><span class="token function">getenv</span><span class="token punctuation">(</span><span class="token string">"MYVAR"</span><span class="token punctuation">)</span><span class="token punctuation">)</span></span>
|
||||
<span class="line">os<span class="token punctuation">.</span><span class="token function">delenv</span><span class="token punctuation">(</span><span class="token string">"MYVAR"</span><span class="token punctuation">)</span></span>
|
||||
<span class="line"></span></code></pre><div class="line-numbers" aria-hidden="true" style="counter-reset:line-number 0;"><div class="line-number"></div><div class="line-number"></div><div class="line-number"></div></div></div><h3 id="加密和编码" tabindex="-1"><a class="header-anchor" href="#加密和编码"><span>加密和编码</span></a></h3><div class="language-lua line-numbers-mode" data-highlighter="prismjs" data-ext="lua"><pre><code><span class="line"><span class="token keyword">local</span> hash <span class="token operator">=</span> os<span class="token punctuation">.</span><span class="token function">sha256</span><span class="token punctuation">(</span><span class="token string">"password"</span><span class="token punctuation">)</span></span>
|
||||
<span class="line"><span class="token keyword">local</span> encoded <span class="token operator">=</span> os<span class="token punctuation">.</span><span class="token function">base64encrypt</span><span class="token punctuation">(</span><span class="token string">"secret"</span><span class="token punctuation">)</span></span>
|
||||
<span class="line"><span class="token keyword">local</span> decoded <span class="token operator">=</span> os<span class="token punctuation">.</span><span class="token function">base64decrypt</span><span class="token punctuation">(</span>encoded<span class="token punctuation">)</span></span>
|
||||
<span class="line"><span class="token function">print</span><span class="token punctuation">(</span><span class="token string">"Hash:"</span><span class="token punctuation">,</span> hash<span class="token punctuation">)</span></span>
|
||||
<span class="line"><span class="token function">print</span><span class="token punctuation">(</span><span class="token string">"Encoded:"</span><span class="token punctuation">,</span> encoded<span class="token punctuation">)</span></span>
|
||||
<span class="line"><span class="token function">print</span><span class="token punctuation">(</span><span class="token string">"Decoded:"</span><span class="token punctuation">,</span> decoded<span class="token punctuation">)</span></span>
|
||||
<span class="line"></span></code></pre><div class="line-numbers" aria-hidden="true" style="counter-reset:line-number 0;"><div class="line-number"></div><div class="line-number"></div><div class="line-number"></div><div class="line-number"></div><div class="line-number"></div><div class="line-number"></div></div></div><h2 id="注意事项" tabindex="-1"><a class="header-anchor" href="#注意事项"><span>注意事项</span></a></h2><ol><li><strong>交互模式</strong>:使用 <code>lua --shell</code> 进入交互式 Lua Shell</li><li><strong>错误处理</strong>:所有 Lua 执行错误都会被捕获并显示</li><li><strong>系统函数</strong>:<code>os</code> 库包含 CMLeonOS 特定的系统函数</li><li><strong>加密支持</strong>:支持 SHA256 和 Base64 编码/解码</li><li><strong>标准 Lua</strong>:完全兼容 Lua 5.1 标准</li></ol><h2 id="版本信息" tabindex="-1"><a class="header-anchor" href="#版本信息"><span>版本信息</span></a></h2><ul><li><strong>Lua 版本</strong>:5.2</li><li><strong>CMLeonOS 版本</strong>:最新</li></ul></div><!--[--><!--]--></div><footer class="vp-page-meta"><!----><div class="vp-meta-item git-info"><!----><!----></div></footer><!----><!--[--><!--]--></main><!--]--></div><!--[--><!----><!--]--><!--]--></div>
|
||||
<script type="module" src="/assets/app-DPqZ-Olm.js" defer></script>
|
||||
</body>
|
||||
</html>
|
||||
31
docs/cmleonos/docs/README.md
Normal file
31
docs/cmleonos/docs/README.md
Normal file
@@ -0,0 +1,31 @@
|
||||
---
|
||||
home: true
|
||||
title: 主页
|
||||
# heroImage: https://vuejs.press/images/hero.png
|
||||
actions:
|
||||
- text: 开始配置
|
||||
link: /get-started.html
|
||||
type: primary
|
||||
- text: Lua 文档
|
||||
link: /lua.html
|
||||
type: secondary
|
||||
|
||||
# - text: Introduction
|
||||
# link: https://vuejs.press/guide/introduction.html
|
||||
# type: secondary
|
||||
|
||||
features:
|
||||
- title: 安全用户系统
|
||||
details: 用户系统是直接绑定在内核下的,通过 SHA-256 密码哈希算法对用户密码进行加密存储,确保用户密码的安全性。
|
||||
- title: Lua 脚本支持
|
||||
details: CMLeonOS支持 Lua 脚本,用户可以通过 Lua 脚本实现自定义功能。
|
||||
- title: 网络
|
||||
details: CMLeonOS支持 TCP/IP 协议栈,用户可以通过网络连接到其他设备。
|
||||
- title: FTP 服务器
|
||||
details: CMLeonOS支持 FTP 服务器,用户可以通过 FTP 协议上传下载文件。
|
||||
- title: 内置编辑器
|
||||
details: CMLeonOS支持内置编辑器,用户可以直接在CMLeonOS中编辑文件。
|
||||
- title: 硬盘存储
|
||||
details: CMLeonOS支持硬盘存储,用户可以将文件持久存储在硬盘中。
|
||||
|
||||
# footer: MIT Licensed | Copyright © 2018-present VuePress Community
|
||||
17
docs/cmleonos/docs/get-started.md
Normal file
17
docs/cmleonos/docs/get-started.md
Normal file
@@ -0,0 +1,17 @@
|
||||
# 配置教程
|
||||
## 准备工作
|
||||
首先,准备一台实体机/虚拟机,确保这台机器等于或大于以下配置:
|
||||
- 处理器:一核以上
|
||||
- 内存:512MB以上
|
||||
- 硬盘:512MB以上
|
||||
- 一个键盘
|
||||
- 一个蜂鸣器或音频输出设备
|
||||
- 建议装上AMD驱动的网卡(Intel驱动的网卡似乎无法运行)
|
||||
|
||||
## 配置硬盘
|
||||
使用PE或其它工具格式化硬盘(注意只分一个区,文件系统选择FAT32)
|
||||
|
||||
## 安装CMLeonOS
|
||||
将CMLeonOS的ISO文件挂载到虚拟机或实体机上,启动后按照提示进行 First time setup。
|
||||
|
||||
在 First time setup 中,系统会让你配置用户名、密码、主机名,配置完后会进行重启,重启之后正常登陆系统,然后就可以开始使用CMLeonOS了。
|
||||
1207
docs/cmleonos/docs/lua.md
Normal file
1207
docs/cmleonos/docs/lua.md
Normal file
File diff suppressed because it is too large
Load Diff
20
docs/cmleonos/package.json
Normal file
20
docs/cmleonos/package.json
Normal file
@@ -0,0 +1,20 @@
|
||||
{
|
||||
"name": "cmleonos",
|
||||
"description": "The CMLeon Operating System Project Official Website",
|
||||
"version": "0.0.1",
|
||||
"license": "MIT",
|
||||
"type": "module",
|
||||
"scripts": {
|
||||
"docs:build": "vuepress build docs",
|
||||
"docs:clean-dev": "vuepress dev docs --clean-cache",
|
||||
"docs:dev": "vuepress dev docs -p 8081",
|
||||
"docs:update-package": "pnpm dlx vp-update"
|
||||
},
|
||||
"devDependencies": {
|
||||
"@vuepress/bundler-vite": "2.0.0-rc.20",
|
||||
"@vuepress/theme-default": "2.0.0-rc.88",
|
||||
"sass-embedded": "^1.86.0",
|
||||
"vue": "^3.5.13",
|
||||
"vuepress": "2.0.0-rc.20"
|
||||
}
|
||||
}
|
||||
3083
docs/cmleonos/pnpm-lock.yaml
generated
Normal file
3083
docs/cmleonos/pnpm-lock.yaml
generated
Normal file
File diff suppressed because it is too large
Load Diff
Reference in New Issue
Block a user