Files
JGZ_YES c30eb9b7ad
Build and Package Oraset / build (macos-latest) (push) Waiting to run
Build and Package Oraset / build (ubuntu-latest) (push) Waiting to run
Build and Package Oraset / build (windows-latest) (push) Waiting to run
Build and Package Oraset / release (push) Blocked by required conditions
Oraset B-5: Clean repository with only C implementation
2026-07-23 13:27:04 +08:00

1649 lines
49 KiB
HTML
Raw Permalink Blame History

This file contains ambiguous Unicode characters
This file contains Unicode characters that might be confused with other characters. If you think that this is intentional, you can safely ignore this warning. Use the Escape button to reveal them.
<!doctype html>
<html lang="zh" class="no-js">
<head>
<meta charset="utf-8">
<meta name="viewport" content="width=device-width,initial-scale=1">
<meta name="description" content="Oraset 编程语言官方文档 - 简单、强大、跨平台的编程语言">
<link rel="canonical" href="https://oraset.org/libraries/util/">
<link rel="prev" href="../array/">
<link rel="icon" href="../../assets/images/favicon.png">
<meta name="generator" content="mkdocs-1.6.1, mkdocs-material-9.7.6">
<title>工具库 - Oraset 编程语言</title>
<link rel="stylesheet" href="../../assets/stylesheets/main.484c7ddc.min.css">
<link rel="stylesheet" href="../../assets/stylesheets/palette.ab4e12ef.min.css">
<link rel="preconnect" href="https://fonts.gstatic.com" crossorigin>
<link rel="stylesheet" href="https://fonts.googleapis.com/css?family=Roboto:300,300i,400,400i,700,700i%7CRoboto+Mono:400,400i,700,700i&display=fallback">
<style>:root{--md-text-font:"Roboto";--md-code-font:"Roboto Mono"}</style>
<script>__md_scope=new URL("../..",location),__md_hash=e=>[...e].reduce(((e,_)=>(e<<5)-e+_.charCodeAt(0)),0),__md_get=(e,_=localStorage,t=__md_scope)=>JSON.parse(_.getItem(t.pathname+"."+e)),__md_set=(e,_,t=localStorage,a=__md_scope)=>{try{t.setItem(a.pathname+"."+e,JSON.stringify(_))}catch(e){}}</script>
</head>
<body dir="ltr" data-md-color-scheme="default" data-md-color-primary="orange" data-md-color-accent="orange">
<input class="md-toggle" data-md-toggle="drawer" type="checkbox" id="__drawer" autocomplete="off">
<input class="md-toggle" data-md-toggle="search" type="checkbox" id="__search" autocomplete="off">
<label class="md-overlay" for="__drawer"></label>
<div data-md-component="skip">
<a href="#_1" class="md-skip">
跳转至
</a>
</div>
<div data-md-component="announce">
</div>
<header class="md-header" data-md-component="header">
<nav class="md-header__inner md-grid" aria-label="页眉">
<a href="../.." title="Oraset 编程语言" class="md-header__button md-logo" aria-label="Oraset 编程语言" data-md-component="logo">
<img src="https://trae-api-cn.mchost.guru/api/ide/v1/text_to_image?prompt=Oraset%20programming%20language%20logo%2C%20orange%20color%2C%20modern%20design&image_size=square_hd" alt="logo">
</a>
<label class="md-header__button md-icon" for="__drawer">
<svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 24 24"><path d="M3 6h18v2H3zm0 5h18v2H3zm0 5h18v2H3z"/></svg>
</label>
<div class="md-header__title" data-md-component="header-title">
<div class="md-header__ellipsis">
<div class="md-header__topic">
<span class="md-ellipsis">
Oraset 编程语言
</span>
</div>
<div class="md-header__topic" data-md-component="header-topic">
<span class="md-ellipsis">
工具库
</span>
</div>
</div>
</div>
<label class="md-header__button md-icon" for="__search">
<svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 24 24"><path d="M9.5 3A6.5 6.5 0 0 1 16 9.5c0 1.61-.59 3.09-1.56 4.23l.27.27h.79l5 5-1.5 1.5-5-5v-.79l-.27-.27A6.52 6.52 0 0 1 9.5 16 6.5 6.5 0 0 1 3 9.5 6.5 6.5 0 0 1 9.5 3m0 2C7 5 5 7 5 9.5S7 14 9.5 14 14 12 14 9.5 12 5 9.5 5"/></svg>
</label>
<div class="md-search" data-md-component="search" role="dialog">
<label class="md-search__overlay" for="__search"></label>
<div class="md-search__inner" role="search">
<form class="md-search__form" name="search">
<input type="text" class="md-search__input" name="query" aria-label="搜索" placeholder="搜索" autocapitalize="off" autocorrect="off" autocomplete="off" spellcheck="false" data-md-component="search-query" required>
<label class="md-search__icon md-icon" for="__search">
<svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 24 24"><path d="M9.5 3A6.5 6.5 0 0 1 16 9.5c0 1.61-.59 3.09-1.56 4.23l.27.27h.79l5 5-1.5 1.5-5-5v-.79l-.27-.27A6.52 6.52 0 0 1 9.5 16 6.5 6.5 0 0 1 3 9.5 6.5 6.5 0 0 1 9.5 3m0 2C7 5 5 7 5 9.5S7 14 9.5 14 14 12 14 9.5 12 5 9.5 5"/></svg>
<svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 24 24"><path d="M20 11v2H8l5.5 5.5-1.42 1.42L4.16 12l7.92-7.92L13.5 5.5 8 11z"/></svg>
</label>
<nav class="md-search__options" aria-label="查找">
<button type="reset" class="md-search__icon md-icon" title="清空当前内容" aria-label="清空当前内容" tabindex="-1">
<svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 24 24"><path d="M19 6.41 17.59 5 12 10.59 6.41 5 5 6.41 10.59 12 5 17.59 6.41 19 12 13.41 17.59 19 19 17.59 13.41 12z"/></svg>
</button>
</nav>
<div class="md-search__suggest" data-md-component="search-suggest"></div>
</form>
<div class="md-search__output">
<div class="md-search__scrollwrap" tabindex="0" data-md-scrollfix>
<div class="md-search-result" data-md-component="search-result">
<div class="md-search-result__meta">
正在初始化搜索引擎
</div>
<ol class="md-search-result__list" role="presentation"></ol>
</div>
</div>
</div>
</div>
</div>
<div class="md-header__source">
<a href="https://github.com/Oraset/oraset" title="前往仓库" class="md-source" data-md-component="source">
<div class="md-source__icon md-icon">
<svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 512 512"><!--! Font Awesome Free 7.1.0 by @fontawesome - https://fontawesome.com License - https://fontawesome.com/license/free (Icons: CC BY 4.0, Fonts: SIL OFL 1.1, Code: MIT License) Copyright 2025 Fonticons, Inc.--><path d="M173.9 397.4c0 2-2.3 3.6-5.2 3.6-3.3.3-5.6-1.3-5.6-3.6 0-2 2.3-3.6 5.2-3.6 3-.3 5.6 1.3 5.6 3.6m-31.1-4.5c-.7 2 1.3 4.3 4.3 4.9 2.6 1 5.6 0 6.2-2s-1.3-4.3-4.3-5.2c-2.6-.7-5.5.3-6.2 2.3m44.2-1.7c-2.9.7-4.9 2.6-4.6 4.9.3 2 2.9 3.3 5.9 2.6 2.9-.7 4.9-2.6 4.6-4.6-.3-1.9-3-3.2-5.9-2.9M252.8 8C114.1 8 8 113.3 8 252c0 110.9 69.8 205.8 169.5 239.2 12.8 2.3 17.3-5.6 17.3-12.1 0-6.2-.3-40.4-.3-61.4 0 0-70 15-84.7-29.8 0 0-11.4-29.1-27.8-36.6 0 0-22.9-15.7 1.6-15.4 0 0 24.9 2 38.6 25.8 21.9 38.6 58.6 27.5 72.9 20.9 2.3-16 8.8-27.1 16-33.7-55.9-6.2-112.3-14.3-112.3-110.5 0-27.5 7.6-41.3 23.6-58.9-2.6-6.5-11.1-33.3 2.6-67.9 20.9-6.5 69 27 69 27 20-5.6 41.5-8.5 62.8-8.5s42.8 2.9 62.8 8.5c0 0 48.1-33.6 69-27 13.7 34.7 5.2 61.4 2.6 67.9 16 17.7 25.8 31.5 25.8 58.9 0 96.5-58.9 104.2-114.8 110.5 9.2 7.9 17 22.9 17 46.4 0 33.7-.3 75.4-.3 83.6 0 6.5 4.6 14.4 17.3 12.1C436.2 457.8 504 362.9 504 252 504 113.3 391.5 8 252.8 8M105.2 352.9c-1.3 1-1 3.3.7 5.2 1.6 1.6 3.9 2.3 5.2 1 1.3-1 1-3.3-.7-5.2-1.6-1.6-3.9-2.3-5.2-1m-10.8-8.1c-.7 1.3.3 2.9 2.3 3.9 1.6 1 3.6.7 4.3-.7.7-1.3-.3-2.9-2.3-3.9-2-.6-3.6-.3-4.3.7m32.4 35.6c-1.6 1.3-1 4.3 1.3 6.2 2.3 2.3 5.2 2.6 6.5 1 1.3-1.3.7-4.3-1.3-6.2-2.2-2.3-5.2-2.6-6.5-1m-11.4-14.7c-1.6 1-1.6 3.6 0 5.9s4.3 3.3 5.6 2.3c1.6-1.3 1.6-3.9 0-6.2-1.4-2.3-4-3.3-5.6-2"/></svg>
</div>
<div class="md-source__repository">
Oraset/oraset
</div>
</a>
</div>
</nav>
</header>
<div class="md-container" data-md-component="container">
<nav class="md-tabs" aria-label="标签" data-md-component="tabs">
<div class="md-grid">
<ul class="md-tabs__list">
<li class="md-tabs__item">
<a href="../.." class="md-tabs__link">
首页
</a>
</li>
<li class="md-tabs__item">
<a href="../../tutorial/quickstart/" class="md-tabs__link">
入门教程
</a>
</li>
<li class="md-tabs__item md-tabs__item--active">
<a href="../math/" class="md-tabs__link">
库参考
</a>
</li>
</ul>
</div>
</nav>
<main class="md-main" data-md-component="main">
<div class="md-main__inner md-grid">
<div class="md-sidebar md-sidebar--primary" data-md-component="sidebar" data-md-type="navigation" >
<div class="md-sidebar__scrollwrap">
<div class="md-sidebar__inner">
<nav class="md-nav md-nav--primary md-nav--lifted" aria-label="导航栏" data-md-level="0">
<label class="md-nav__title" for="__drawer">
<a href="../.." title="Oraset 编程语言" class="md-nav__button md-logo" aria-label="Oraset 编程语言" data-md-component="logo">
<img src="https://trae-api-cn.mchost.guru/api/ide/v1/text_to_image?prompt=Oraset%20programming%20language%20logo%2C%20orange%20color%2C%20modern%20design&image_size=square_hd" alt="logo">
</a>
Oraset 编程语言
</label>
<div class="md-nav__source">
<a href="https://github.com/Oraset/oraset" title="前往仓库" class="md-source" data-md-component="source">
<div class="md-source__icon md-icon">
<svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 512 512"><!--! Font Awesome Free 7.1.0 by @fontawesome - https://fontawesome.com License - https://fontawesome.com/license/free (Icons: CC BY 4.0, Fonts: SIL OFL 1.1, Code: MIT License) Copyright 2025 Fonticons, Inc.--><path d="M173.9 397.4c0 2-2.3 3.6-5.2 3.6-3.3.3-5.6-1.3-5.6-3.6 0-2 2.3-3.6 5.2-3.6 3-.3 5.6 1.3 5.6 3.6m-31.1-4.5c-.7 2 1.3 4.3 4.3 4.9 2.6 1 5.6 0 6.2-2s-1.3-4.3-4.3-5.2c-2.6-.7-5.5.3-6.2 2.3m44.2-1.7c-2.9.7-4.9 2.6-4.6 4.9.3 2 2.9 3.3 5.9 2.6 2.9-.7 4.9-2.6 4.6-4.6-.3-1.9-3-3.2-5.9-2.9M252.8 8C114.1 8 8 113.3 8 252c0 110.9 69.8 205.8 169.5 239.2 12.8 2.3 17.3-5.6 17.3-12.1 0-6.2-.3-40.4-.3-61.4 0 0-70 15-84.7-29.8 0 0-11.4-29.1-27.8-36.6 0 0-22.9-15.7 1.6-15.4 0 0 24.9 2 38.6 25.8 21.9 38.6 58.6 27.5 72.9 20.9 2.3-16 8.8-27.1 16-33.7-55.9-6.2-112.3-14.3-112.3-110.5 0-27.5 7.6-41.3 23.6-58.9-2.6-6.5-11.1-33.3 2.6-67.9 20.9-6.5 69 27 69 27 20-5.6 41.5-8.5 62.8-8.5s42.8 2.9 62.8 8.5c0 0 48.1-33.6 69-27 13.7 34.7 5.2 61.4 2.6 67.9 16 17.7 25.8 31.5 25.8 58.9 0 96.5-58.9 104.2-114.8 110.5 9.2 7.9 17 22.9 17 46.4 0 33.7-.3 75.4-.3 83.6 0 6.5 4.6 14.4 17.3 12.1C436.2 457.8 504 362.9 504 252 504 113.3 391.5 8 252.8 8M105.2 352.9c-1.3 1-1 3.3.7 5.2 1.6 1.6 3.9 2.3 5.2 1 1.3-1 1-3.3-.7-5.2-1.6-1.6-3.9-2.3-5.2-1m-10.8-8.1c-.7 1.3.3 2.9 2.3 3.9 1.6 1 3.6.7 4.3-.7.7-1.3-.3-2.9-2.3-3.9-2-.6-3.6-.3-4.3.7m32.4 35.6c-1.6 1.3-1 4.3 1.3 6.2 2.3 2.3 5.2 2.6 6.5 1 1.3-1.3.7-4.3-1.3-6.2-2.2-2.3-5.2-2.6-6.5-1m-11.4-14.7c-1.6 1-1.6 3.6 0 5.9s4.3 3.3 5.6 2.3c1.6-1.3 1.6-3.9 0-6.2-1.4-2.3-4-3.3-5.6-2"/></svg>
</div>
<div class="md-source__repository">
Oraset/oraset
</div>
</a>
</div>
<ul class="md-nav__list" data-md-scrollfix>
<li class="md-nav__item">
<a href="../.." class="md-nav__link">
<span class="md-ellipsis">
首页
</span>
</a>
</li>
<li class="md-nav__item md-nav__item--nested">
<input class="md-nav__toggle md-toggle " type="checkbox" id="__nav_2" >
<label class="md-nav__link" for="__nav_2" id="__nav_2_label" tabindex="0">
<span class="md-ellipsis">
入门教程
</span>
<span class="md-nav__icon md-icon"></span>
</label>
<nav class="md-nav" data-md-level="1" aria-labelledby="__nav_2_label" aria-expanded="false">
<label class="md-nav__title" for="__nav_2">
<span class="md-nav__icon md-icon"></span>
入门教程
</label>
<ul class="md-nav__list" data-md-scrollfix>
<li class="md-nav__item">
<a href="../../tutorial/quickstart/" class="md-nav__link">
<span class="md-ellipsis">
快速开始
</span>
</a>
</li>
<li class="md-nav__item">
<a href="../../tutorial/basic-syntax/" class="md-nav__link">
<span class="md-ellipsis">
基本语法
</span>
</a>
</li>
<li class="md-nav__item">
<a href="../../tutorial/control-structures/" class="md-nav__link">
<span class="md-ellipsis">
控制结构
</span>
</a>
</li>
<li class="md-nav__item">
<a href="../../tutorial/functions-and-classes/" class="md-nav__link">
<span class="md-ellipsis">
函数和类
</span>
</a>
</li>
</ul>
</nav>
</li>
<li class="md-nav__item md-nav__item--active md-nav__item--section md-nav__item--nested">
<input class="md-nav__toggle md-toggle " type="checkbox" id="__nav_3" checked>
<label class="md-nav__link" for="__nav_3" id="__nav_3_label" tabindex="">
<span class="md-ellipsis">
库参考
</span>
<span class="md-nav__icon md-icon"></span>
</label>
<nav class="md-nav" data-md-level="1" aria-labelledby="__nav_3_label" aria-expanded="true">
<label class="md-nav__title" for="__nav_3">
<span class="md-nav__icon md-icon"></span>
库参考
</label>
<ul class="md-nav__list" data-md-scrollfix>
<li class="md-nav__item">
<a href="../math/" class="md-nav__link">
<span class="md-ellipsis">
数学库
</span>
</a>
</li>
<li class="md-nav__item">
<a href="../string/" class="md-nav__link">
<span class="md-ellipsis">
字符串库
</span>
</a>
</li>
<li class="md-nav__item">
<a href="../array/" class="md-nav__link">
<span class="md-ellipsis">
数组库
</span>
</a>
</li>
<li class="md-nav__item md-nav__item--active">
<input class="md-nav__toggle md-toggle" type="checkbox" id="__toc">
<label class="md-nav__link md-nav__link--active" for="__toc">
<span class="md-ellipsis">
工具库
</span>
<span class="md-nav__icon md-icon"></span>
</label>
<a href="./" class="md-nav__link md-nav__link--active">
<span class="md-ellipsis">
工具库
</span>
</a>
<nav class="md-nav md-nav--secondary" aria-label="目录">
<label class="md-nav__title" for="__toc">
<span class="md-nav__icon md-icon"></span>
目录
</label>
<ul class="md-nav__list" data-md-component="toc" data-md-scrollfix>
<li class="md-nav__item">
<a href="#_2" class="md-nav__link">
<span class="md-ellipsis">
简介
</span>
</a>
</li>
<li class="md-nav__item">
<a href="#_3" class="md-nav__link">
<span class="md-ellipsis">
导入方式
</span>
</a>
</li>
<li class="md-nav__item">
<a href="#_4" class="md-nav__link">
<span class="md-ellipsis">
函数参考
</span>
</a>
<nav class="md-nav" aria-label="函数参考">
<ul class="md-nav__list">
<li class="md-nav__item">
<a href="#_5" class="md-nav__link">
<span class="md-ellipsis">
随机数生成
</span>
</a>
<nav class="md-nav" aria-label="随机数生成">
<ul class="md-nav__list">
<li class="md-nav__item">
<a href="#utilrandom" class="md-nav__link">
<span class="md-ellipsis">
util.random()
</span>
</a>
</li>
<li class="md-nav__item">
<a href="#utilrandinta-b" class="md-nav__link">
<span class="md-ellipsis">
util.randint(a, b)
</span>
</a>
</li>
</ul>
</nav>
</li>
<li class="md-nav__item">
<a href="#_6" class="md-nav__link">
<span class="md-ellipsis">
数学计算
</span>
</a>
<nav class="md-nav" aria-label="数学计算">
<ul class="md-nav__list">
<li class="md-nav__item">
<a href="#utilroundx-n" class="md-nav__link">
<span class="md-ellipsis">
util.round(x, n)
</span>
</a>
</li>
<li class="md-nav__item">
<a href="#utilabsx" class="md-nav__link">
<span class="md-ellipsis">
util.abs(x)
</span>
</a>
</li>
<li class="md-nav__item">
<a href="#utilminargs" class="md-nav__link">
<span class="md-ellipsis">
util.min(...args)
</span>
</a>
</li>
<li class="md-nav__item">
<a href="#utilmaxargs" class="md-nav__link">
<span class="md-ellipsis">
util.max(...args)
</span>
</a>
</li>
<li class="md-nav__item">
<a href="#utilsumargs" class="md-nav__link">
<span class="md-ellipsis">
util.sum(...args)
</span>
</a>
</li>
<li class="md-nav__item">
<a href="#utilaverageargs" class="md-nav__link">
<span class="md-ellipsis">
util.average(...args)
</span>
</a>
</li>
</ul>
</nav>
</li>
<li class="md-nav__item">
<a href="#_7" class="md-nav__link">
<span class="md-ellipsis">
类型检查
</span>
</a>
<nav class="md-nav" aria-label="类型检查">
<ul class="md-nav__list">
<li class="md-nav__item">
<a href="#utilisnumberx" class="md-nav__link">
<span class="md-ellipsis">
util.isNumber(x)
</span>
</a>
</li>
<li class="md-nav__item">
<a href="#utilisstringx" class="md-nav__link">
<span class="md-ellipsis">
util.isString(x)
</span>
</a>
</li>
<li class="md-nav__item">
<a href="#utilisarrayx" class="md-nav__link">
<span class="md-ellipsis">
util.isArray(x)
</span>
</a>
</li>
</ul>
</nav>
</li>
<li class="md-nav__item">
<a href="#_8" class="md-nav__link">
<span class="md-ellipsis">
类型转换
</span>
</a>
<nav class="md-nav" aria-label="类型转换">
<ul class="md-nav__list">
<li class="md-nav__item">
<a href="#utiltonumberx" class="md-nav__link">
<span class="md-ellipsis">
util.toNumber(x)
</span>
</a>
</li>
<li class="md-nav__item">
<a href="#utiltostringx" class="md-nav__link">
<span class="md-ellipsis">
util.toString(x)
</span>
</a>
</li>
<li class="md-nav__item">
<a href="#utiltypeofx" class="md-nav__link">
<span class="md-ellipsis">
util.typeof(x)
</span>
</a>
</li>
</ul>
</nav>
</li>
</ul>
</nav>
</li>
<li class="md-nav__item">
<a href="#_9" class="md-nav__link">
<span class="md-ellipsis">
示例代码
</span>
</a>
</li>
<li class="md-nav__item">
<a href="#_10" class="md-nav__link">
<span class="md-ellipsis">
注意事项
</span>
</a>
</li>
</ul>
</nav>
</li>
</ul>
</nav>
</li>
</ul>
</nav>
</div>
</div>
</div>
<div class="md-sidebar md-sidebar--secondary" data-md-component="sidebar" data-md-type="toc" >
<div class="md-sidebar__scrollwrap">
<div class="md-sidebar__inner">
<nav class="md-nav md-nav--secondary" aria-label="目录">
<label class="md-nav__title" for="__toc">
<span class="md-nav__icon md-icon"></span>
目录
</label>
<ul class="md-nav__list" data-md-component="toc" data-md-scrollfix>
<li class="md-nav__item">
<a href="#_2" class="md-nav__link">
<span class="md-ellipsis">
简介
</span>
</a>
</li>
<li class="md-nav__item">
<a href="#_3" class="md-nav__link">
<span class="md-ellipsis">
导入方式
</span>
</a>
</li>
<li class="md-nav__item">
<a href="#_4" class="md-nav__link">
<span class="md-ellipsis">
函数参考
</span>
</a>
<nav class="md-nav" aria-label="函数参考">
<ul class="md-nav__list">
<li class="md-nav__item">
<a href="#_5" class="md-nav__link">
<span class="md-ellipsis">
随机数生成
</span>
</a>
<nav class="md-nav" aria-label="随机数生成">
<ul class="md-nav__list">
<li class="md-nav__item">
<a href="#utilrandom" class="md-nav__link">
<span class="md-ellipsis">
util.random()
</span>
</a>
</li>
<li class="md-nav__item">
<a href="#utilrandinta-b" class="md-nav__link">
<span class="md-ellipsis">
util.randint(a, b)
</span>
</a>
</li>
</ul>
</nav>
</li>
<li class="md-nav__item">
<a href="#_6" class="md-nav__link">
<span class="md-ellipsis">
数学计算
</span>
</a>
<nav class="md-nav" aria-label="数学计算">
<ul class="md-nav__list">
<li class="md-nav__item">
<a href="#utilroundx-n" class="md-nav__link">
<span class="md-ellipsis">
util.round(x, n)
</span>
</a>
</li>
<li class="md-nav__item">
<a href="#utilabsx" class="md-nav__link">
<span class="md-ellipsis">
util.abs(x)
</span>
</a>
</li>
<li class="md-nav__item">
<a href="#utilminargs" class="md-nav__link">
<span class="md-ellipsis">
util.min(...args)
</span>
</a>
</li>
<li class="md-nav__item">
<a href="#utilmaxargs" class="md-nav__link">
<span class="md-ellipsis">
util.max(...args)
</span>
</a>
</li>
<li class="md-nav__item">
<a href="#utilsumargs" class="md-nav__link">
<span class="md-ellipsis">
util.sum(...args)
</span>
</a>
</li>
<li class="md-nav__item">
<a href="#utilaverageargs" class="md-nav__link">
<span class="md-ellipsis">
util.average(...args)
</span>
</a>
</li>
</ul>
</nav>
</li>
<li class="md-nav__item">
<a href="#_7" class="md-nav__link">
<span class="md-ellipsis">
类型检查
</span>
</a>
<nav class="md-nav" aria-label="类型检查">
<ul class="md-nav__list">
<li class="md-nav__item">
<a href="#utilisnumberx" class="md-nav__link">
<span class="md-ellipsis">
util.isNumber(x)
</span>
</a>
</li>
<li class="md-nav__item">
<a href="#utilisstringx" class="md-nav__link">
<span class="md-ellipsis">
util.isString(x)
</span>
</a>
</li>
<li class="md-nav__item">
<a href="#utilisarrayx" class="md-nav__link">
<span class="md-ellipsis">
util.isArray(x)
</span>
</a>
</li>
</ul>
</nav>
</li>
<li class="md-nav__item">
<a href="#_8" class="md-nav__link">
<span class="md-ellipsis">
类型转换
</span>
</a>
<nav class="md-nav" aria-label="类型转换">
<ul class="md-nav__list">
<li class="md-nav__item">
<a href="#utiltonumberx" class="md-nav__link">
<span class="md-ellipsis">
util.toNumber(x)
</span>
</a>
</li>
<li class="md-nav__item">
<a href="#utiltostringx" class="md-nav__link">
<span class="md-ellipsis">
util.toString(x)
</span>
</a>
</li>
<li class="md-nav__item">
<a href="#utiltypeofx" class="md-nav__link">
<span class="md-ellipsis">
util.typeof(x)
</span>
</a>
</li>
</ul>
</nav>
</li>
</ul>
</nav>
</li>
<li class="md-nav__item">
<a href="#_9" class="md-nav__link">
<span class="md-ellipsis">
示例代码
</span>
</a>
</li>
<li class="md-nav__item">
<a href="#_10" class="md-nav__link">
<span class="md-ellipsis">
注意事项
</span>
</a>
</li>
</ul>
</nav>
</div>
</div>
</div>
<div class="md-content" data-md-component="content">
<article class="md-content__inner md-typeset">
<h1 id="_1">工具库<a class="headerlink" href="#_1" title="Permanent link">&para;</a></h1>
<h2 id="_2">简介<a class="headerlink" href="#_2" title="Permanent link">&para;</a></h2>
<p>工具库(<code>@util</code>)提供了一系列实用的工具函数,包括随机数生成、数学计算、类型检查等功能。</p>
<h2 id="_3">导入方式<a class="headerlink" href="#_3" title="Permanent link">&para;</a></h2>
<div class="highlight"><pre><span></span><code><a id="__codelineno-0-1" name="__codelineno-0-1" href="#__codelineno-0-1"></a>@util;
</code></pre></div>
<h2 id="_4">函数参考<a class="headerlink" href="#_4" title="Permanent link">&para;</a></h2>
<h3 id="_5">随机数生成<a class="headerlink" href="#_5" title="Permanent link">&para;</a></h3>
<h4 id="utilrandom">util.random()<a class="headerlink" href="#utilrandom" title="Permanent link">&para;</a></h4>
<p>生成一个0到1之间的随机小数。</p>
<p><strong>参数:</strong>
- 无</p>
<p><strong>返回值:</strong>
- 0到1之间的随机小数</p>
<p><strong>示例:</strong></p>
<div class="highlight"><pre><span></span><code><a id="__codelineno-1-1" name="__codelineno-1-1" href="#__codelineno-1-1"></a>@util;
<a id="__codelineno-1-2" name="__codelineno-1-2" href="#__codelineno-1-2"></a>
<a id="__codelineno-1-3" name="__codelineno-1-3" href="#__codelineno-1-3"></a>result = util.random();
<a id="__codelineno-1-4" name="__codelineno-1-4" href="#__codelineno-1-4"></a>show(`Random number: `, result); !! 输出: 0.123456789
</code></pre></div>
<h4 id="utilrandinta-b">util.randint(a, b)<a class="headerlink" href="#utilrandinta-b" title="Permanent link">&para;</a></h4>
<p>生成一个指定范围内的随机整数。</p>
<p><strong>参数:</strong>
- <code>a</code> - 最小值
- <code>b</code> - 最大值</p>
<p><strong>返回值:</strong>
- 范围内的随机整数</p>
<p><strong>示例:</strong></p>
<div class="highlight"><pre><span></span><code><a id="__codelineno-2-1" name="__codelineno-2-1" href="#__codelineno-2-1"></a>@util;
<a id="__codelineno-2-2" name="__codelineno-2-2" href="#__codelineno-2-2"></a>
<a id="__codelineno-2-3" name="__codelineno-2-3" href="#__codelineno-2-3"></a>result = util.randint(1, 100);
<a id="__codelineno-2-4" name="__codelineno-2-4" href="#__codelineno-2-4"></a>show(`Random integer: `, result); !! 输出: 42
</code></pre></div>
<h3 id="_6">数学计算<a class="headerlink" href="#_6" title="Permanent link">&para;</a></h3>
<h4 id="utilroundx-n">util.round(x, n)<a class="headerlink" href="#utilroundx-n" title="Permanent link">&para;</a></h4>
<p>对数字进行四舍五入。</p>
<p><strong>参数:</strong>
- <code>x</code> - 要四舍五入的数字
- <code>n</code> - 小数位数(默认为0</p>
<p><strong>返回值:</strong>
- 四舍五入后的数字</p>
<p><strong>示例:</strong></p>
<div class="highlight"><pre><span></span><code><a id="__codelineno-3-1" name="__codelineno-3-1" href="#__codelineno-3-1"></a>@util;
<a id="__codelineno-3-2" name="__codelineno-3-2" href="#__codelineno-3-2"></a>
<a id="__codelineno-3-3" name="__codelineno-3-3" href="#__codelineno-3-3"></a>result1 = util.round(3.14159);
<a id="__codelineno-3-4" name="__codelineno-3-4" href="#__codelineno-3-4"></a>result2 = util.round(3.14159, 2);
<a id="__codelineno-3-5" name="__codelineno-3-5" href="#__codelineno-3-5"></a>show(`Rounded: `, result1); !! 输出: 3
<a id="__codelineno-3-6" name="__codelineno-3-6" href="#__codelineno-3-6"></a>show(`Rounded to 2 decimals: `, result2); !! 输出: 3.14
</code></pre></div>
<h4 id="utilabsx">util.abs(x)<a class="headerlink" href="#utilabsx" title="Permanent link">&para;</a></h4>
<p>计算数字的绝对值。</p>
<p><strong>参数:</strong>
- <code>x</code> - 数字</p>
<p><strong>返回值:</strong>
- 数字的绝对值</p>
<p><strong>示例:</strong></p>
<div class="highlight"><pre><span></span><code><a id="__codelineno-4-1" name="__codelineno-4-1" href="#__codelineno-4-1"></a>@util;
<a id="__codelineno-4-2" name="__codelineno-4-2" href="#__codelineno-4-2"></a>
<a id="__codelineno-4-3" name="__codelineno-4-3" href="#__codelineno-4-3"></a>result = util.abs(-123);
<a id="__codelineno-4-4" name="__codelineno-4-4" href="#__codelineno-4-4"></a>show(`Absolute value: `, result); !! 输出: 123
</code></pre></div>
<h4 id="utilminargs">util.min(...args)<a class="headerlink" href="#utilminargs" title="Permanent link">&para;</a></h4>
<p>返回多个数字中的最小值。</p>
<p><strong>参数:</strong>
- <code>...args</code> - 多个数字</p>
<p><strong>返回值:</strong>
- 最小值</p>
<p><strong>示例:</strong></p>
<div class="highlight"><pre><span></span><code><a id="__codelineno-5-1" name="__codelineno-5-1" href="#__codelineno-5-1"></a>@util;
<a id="__codelineno-5-2" name="__codelineno-5-2" href="#__codelineno-5-2"></a>
<a id="__codelineno-5-3" name="__codelineno-5-3" href="#__codelineno-5-3"></a>result = util.min(10, 5, 20, 3);
<a id="__codelineno-5-4" name="__codelineno-5-4" href="#__codelineno-5-4"></a>show(`Minimum: `, result); !! 输出: 3
</code></pre></div>
<h4 id="utilmaxargs">util.max(...args)<a class="headerlink" href="#utilmaxargs" title="Permanent link">&para;</a></h4>
<p>返回多个数字中的最大值。</p>
<p><strong>参数:</strong>
- <code>...args</code> - 多个数字</p>
<p><strong>返回值:</strong>
- 最大值</p>
<p><strong>示例:</strong></p>
<div class="highlight"><pre><span></span><code><a id="__codelineno-6-1" name="__codelineno-6-1" href="#__codelineno-6-1"></a>@util;
<a id="__codelineno-6-2" name="__codelineno-6-2" href="#__codelineno-6-2"></a>
<a id="__codelineno-6-3" name="__codelineno-6-3" href="#__codelineno-6-3"></a>result = util.max(10, 5, 20, 3);
<a id="__codelineno-6-4" name="__codelineno-6-4" href="#__codelineno-6-4"></a>show(`Maximum: `, result); !! 输出: 20
</code></pre></div>
<h4 id="utilsumargs">util.sum(...args)<a class="headerlink" href="#utilsumargs" title="Permanent link">&para;</a></h4>
<p>计算多个数字的和。</p>
<p><strong>参数:</strong>
- <code>...args</code> - 多个数字</p>
<p><strong>返回值:</strong>
- 数字的和</p>
<p><strong>示例:</strong></p>
<div class="highlight"><pre><span></span><code><a id="__codelineno-7-1" name="__codelineno-7-1" href="#__codelineno-7-1"></a>@util;
<a id="__codelineno-7-2" name="__codelineno-7-2" href="#__codelineno-7-2"></a>
<a id="__codelineno-7-3" name="__codelineno-7-3" href="#__codelineno-7-3"></a>result = util.sum(1, 2, 3, 4, 5);
<a id="__codelineno-7-4" name="__codelineno-7-4" href="#__codelineno-7-4"></a>show(`Sum: `, result); !! 输出: 15
</code></pre></div>
<h4 id="utilaverageargs">util.average(...args)<a class="headerlink" href="#utilaverageargs" title="Permanent link">&para;</a></h4>
<p>计算多个数字的平均值。</p>
<p><strong>参数:</strong>
- <code>...args</code> - 多个数字</p>
<p><strong>返回值:</strong>
- 数字的平均值</p>
<p><strong>示例:</strong></p>
<div class="highlight"><pre><span></span><code><a id="__codelineno-8-1" name="__codelineno-8-1" href="#__codelineno-8-1"></a>@util;
<a id="__codelineno-8-2" name="__codelineno-8-2" href="#__codelineno-8-2"></a>
<a id="__codelineno-8-3" name="__codelineno-8-3" href="#__codelineno-8-3"></a>result = util.average(1, 2, 3, 4, 5);
<a id="__codelineno-8-4" name="__codelineno-8-4" href="#__codelineno-8-4"></a>show(`Average: `, result); !! 输出: 3
</code></pre></div>
<h3 id="_7">类型检查<a class="headerlink" href="#_7" title="Permanent link">&para;</a></h3>
<h4 id="utilisnumberx">util.isNumber(x)<a class="headerlink" href="#utilisnumberx" title="Permanent link">&para;</a></h4>
<p>检查值是否为数字。</p>
<p><strong>参数:</strong>
- <code>x</code> - 要检查的值</p>
<p><strong>返回值:</strong>
- 布尔值,表示是否为数字</p>
<p><strong>示例:</strong></p>
<div class="highlight"><pre><span></span><code><a id="__codelineno-9-1" name="__codelineno-9-1" href="#__codelineno-9-1"></a>@util;
<a id="__codelineno-9-2" name="__codelineno-9-2" href="#__codelineno-9-2"></a>
<a id="__codelineno-9-3" name="__codelineno-9-3" href="#__codelineno-9-3"></a>result1 = util.isNumber(123);
<a id="__codelineno-9-4" name="__codelineno-9-4" href="#__codelineno-9-4"></a>result2 = util.isNumber(`123`);
<a id="__codelineno-9-5" name="__codelineno-9-5" href="#__codelineno-9-5"></a>result3 = util.isNumber(`abc`);
<a id="__codelineno-9-6" name="__codelineno-9-6" href="#__codelineno-9-6"></a>show(`Is 123 a number: `, result1); !! 输出: true
<a id="__codelineno-9-7" name="__codelineno-9-7" href="#__codelineno-9-7"></a>show(`Is &#39;123&#39; a number: `, result2); !! 输出: true
<a id="__codelineno-9-8" name="__codelineno-9-8" href="#__codelineno-9-8"></a>show(`Is &#39;abc&#39; a number: `, result3); !! 输出: false
</code></pre></div>
<h4 id="utilisstringx">util.isString(x)<a class="headerlink" href="#utilisstringx" title="Permanent link">&para;</a></h4>
<p>检查值是否为字符串。</p>
<p><strong>参数:</strong>
- <code>x</code> - 要检查的值</p>
<p><strong>返回值:</strong>
- 布尔值,表示是否为字符串</p>
<p><strong>示例:</strong></p>
<div class="highlight"><pre><span></span><code><a id="__codelineno-10-1" name="__codelineno-10-1" href="#__codelineno-10-1"></a>@util;
<a id="__codelineno-10-2" name="__codelineno-10-2" href="#__codelineno-10-2"></a>
<a id="__codelineno-10-3" name="__codelineno-10-3" href="#__codelineno-10-3"></a>result1 = util.isString(`Hello`);
<a id="__codelineno-10-4" name="__codelineno-10-4" href="#__codelineno-10-4"></a>result2 = util.isString(123);
<a id="__codelineno-10-5" name="__codelineno-10-5" href="#__codelineno-10-5"></a>show(`Is &#39;Hello&#39; a string: `, result1); !! 输出: true
<a id="__codelineno-10-6" name="__codelineno-10-6" href="#__codelineno-10-6"></a>show(`Is 123 a string: `, result2); !! 输出: false
</code></pre></div>
<h4 id="utilisarrayx">util.isArray(x)<a class="headerlink" href="#utilisarrayx" title="Permanent link">&para;</a></h4>
<p>检查值是否为数组。</p>
<p><strong>参数:</strong>
- <code>x</code> - 要检查的值</p>
<p><strong>返回值:</strong>
- 布尔值,表示是否为数组</p>
<p><strong>示例:</strong></p>
<div class="highlight"><pre><span></span><code><a id="__codelineno-11-1" name="__codelineno-11-1" href="#__codelineno-11-1"></a>@util;
<a id="__codelineno-11-2" name="__codelineno-11-2" href="#__codelineno-11-2"></a>
<a id="__codelineno-11-3" name="__codelineno-11-3" href="#__codelineno-11-3"></a>result1 = util.isArray(arr(1, 2, 3));
<a id="__codelineno-11-4" name="__codelineno-11-4" href="#__codelineno-11-4"></a>result2 = util.isArray(`[1, 2, 3]`);
<a id="__codelineno-11-5" name="__codelineno-11-5" href="#__codelineno-11-5"></a>result3 = util.isArray(123);
<a id="__codelineno-11-6" name="__codelineno-11-6" href="#__codelineno-11-6"></a>show(`Is arr(1, 2, 3) an array: `, result1); !! 输出: true
<a id="__codelineno-11-7" name="__codelineno-11-7" href="#__codelineno-11-7"></a>show(`Is &#39;[1, 2, 3]&#39; an array: `, result2); !! 输出: true
<a id="__codelineno-11-8" name="__codelineno-11-8" href="#__codelineno-11-8"></a>show(`Is 123 an array: `, result3); !! 输出: false
</code></pre></div>
<h3 id="_8">类型转换<a class="headerlink" href="#_8" title="Permanent link">&para;</a></h3>
<h4 id="utiltonumberx">util.toNumber(x)<a class="headerlink" href="#utiltonumberx" title="Permanent link">&para;</a></h4>
<p>将值转换为数字。</p>
<p><strong>参数:</strong>
- <code>x</code> - 要转换的值</p>
<p><strong>返回值:</strong>
- 转换后的数字</p>
<p><strong>示例:</strong></p>
<div class="highlight"><pre><span></span><code><a id="__codelineno-12-1" name="__codelineno-12-1" href="#__codelineno-12-1"></a>@util;
<a id="__codelineno-12-2" name="__codelineno-12-2" href="#__codelineno-12-2"></a>
<a id="__codelineno-12-3" name="__codelineno-12-3" href="#__codelineno-12-3"></a>result = util.toNumber(`123`);
<a id="__codelineno-12-4" name="__codelineno-12-4" href="#__codelineno-12-4"></a>show(`Converted to number: `, result); !! 输出: 123
</code></pre></div>
<h4 id="utiltostringx">util.toString(x)<a class="headerlink" href="#utiltostringx" title="Permanent link">&para;</a></h4>
<p>将值转换为字符串。</p>
<p><strong>参数:</strong>
- <code>x</code> - 要转换的值</p>
<p><strong>返回值:</strong>
- 转换后的字符串</p>
<p><strong>示例:</strong></p>
<div class="highlight"><pre><span></span><code><a id="__codelineno-13-1" name="__codelineno-13-1" href="#__codelineno-13-1"></a>@util;
<a id="__codelineno-13-2" name="__codelineno-13-2" href="#__codelineno-13-2"></a>
<a id="__codelineno-13-3" name="__codelineno-13-3" href="#__codelineno-13-3"></a>result = util.toString(123);
<a id="__codelineno-13-4" name="__codelineno-13-4" href="#__codelineno-13-4"></a>show(`Converted to string: `, result); !! 输出: 123
</code></pre></div>
<h4 id="utiltypeofx">util.typeof(x)<a class="headerlink" href="#utiltypeofx" title="Permanent link">&para;</a></h4>
<p>获取值的类型。</p>
<p><strong>参数:</strong>
- <code>x</code> - 要检查的值</p>
<p><strong>返回值:</strong>
- 值的类型('array'、'number'、'string' 或 'unknown'</p>
<p><strong>示例:</strong></p>
<div class="highlight"><pre><span></span><code><a id="__codelineno-14-1" name="__codelineno-14-1" href="#__codelineno-14-1"></a>@util;
<a id="__codelineno-14-2" name="__codelineno-14-2" href="#__codelineno-14-2"></a>
<a id="__codelineno-14-3" name="__codelineno-14-3" href="#__codelineno-14-3"></a>result1 = util.typeof(123);
<a id="__codelineno-14-4" name="__codelineno-14-4" href="#__codelineno-14-4"></a>result2 = util.typeof(`Hello`);
<a id="__codelineno-14-5" name="__codelineno-14-5" href="#__codelineno-14-5"></a>result3 = util.typeof(arr(1, 2, 3));
<a id="__codelineno-14-6" name="__codelineno-14-6" href="#__codelineno-14-6"></a>show(`Type of 123: `, result1); !! 输出: number
<a id="__codelineno-14-7" name="__codelineno-14-7" href="#__codelineno-14-7"></a>show(`Type of &#39;Hello&#39;: `, result2); !! 输出: string
<a id="__codelineno-14-8" name="__codelineno-14-8" href="#__codelineno-14-8"></a>show(`Type of arr(1, 2, 3): `, result3); !! 输出: array
</code></pre></div>
<h2 id="_9">示例代码<a class="headerlink" href="#_9" title="Permanent link">&para;</a></h2>
<div class="highlight"><pre><span></span><code><a id="__codelineno-15-1" name="__codelineno-15-1" href="#__codelineno-15-1"></a>@util;
<a id="__codelineno-15-2" name="__codelineno-15-2" href="#__codelineno-15-2"></a>
<a id="__codelineno-15-3" name="__codelineno-15-3" href="#__codelineno-15-3"></a>!! 随机数生成
<a id="__codelineno-15-4" name="__codelineno-15-4" href="#__codelineno-15-4"></a>show(`Random number: `, util.random());
<a id="__codelineno-15-5" name="__codelineno-15-5" href="#__codelineno-15-5"></a>show(`Random integer (1-100): `, util.randint(1, 100));
<a id="__codelineno-15-6" name="__codelineno-15-6" href="#__codelineno-15-6"></a>
<a id="__codelineno-15-7" name="__codelineno-15-7" href="#__codelineno-15-7"></a>!! 数学计算
<a id="__codelineno-15-8" name="__codelineno-15-8" href="#__codelineno-15-8"></a>show(`Absolute value of -123: `, util.abs(-123));
<a id="__codelineno-15-9" name="__codelineno-15-9" href="#__codelineno-15-9"></a>show(`Round 3.14159: `, util.round(3.14159));
<a id="__codelineno-15-10" name="__codelineno-15-10" href="#__codelineno-15-10"></a>show(`Round 3.14159 to 2 decimals: `, util.round(3.14159, 2));
<a id="__codelineno-15-11" name="__codelineno-15-11" href="#__codelineno-15-11"></a>show(`Minimum of 10, 5, 20, 3: `, util.min(10, 5, 20, 3));
<a id="__codelineno-15-12" name="__codelineno-15-12" href="#__codelineno-15-12"></a>show(`Maximum of 10, 5, 20, 3: `, util.max(10, 5, 20, 3));
<a id="__codelineno-15-13" name="__codelineno-15-13" href="#__codelineno-15-13"></a>show(`Sum of 1, 2, 3, 4, 5: `, util.sum(1, 2, 3, 4, 5));
<a id="__codelineno-15-14" name="__codelineno-15-14" href="#__codelineno-15-14"></a>show(`Average of 1, 2, 3, 4, 5: `, util.average(1, 2, 3, 4, 5));
<a id="__codelineno-15-15" name="__codelineno-15-15" href="#__codelineno-15-15"></a>
<a id="__codelineno-15-16" name="__codelineno-15-16" href="#__codelineno-15-16"></a>!! 类型检查
<a id="__codelineno-15-17" name="__codelineno-15-17" href="#__codelineno-15-17"></a>show(`Is 123 a number: `, util.isNumber(123));
<a id="__codelineno-15-18" name="__codelineno-15-18" href="#__codelineno-15-18"></a>show(`Is &#39;123&#39; a number: `, util.isNumber(`123`));
<a id="__codelineno-15-19" name="__codelineno-15-19" href="#__codelineno-15-19"></a>show(`Is &#39;abc&#39; a number: `, util.isNumber(`abc`));
<a id="__codelineno-15-20" name="__codelineno-15-20" href="#__codelineno-15-20"></a>show(`Is &#39;Hello&#39; a string: `, util.isString(`Hello`));
<a id="__codelineno-15-21" name="__codelineno-15-21" href="#__codelineno-15-21"></a>show(`Is 123 a string: `, util.isString(123));
<a id="__codelineno-15-22" name="__codelineno-15-22" href="#__codelineno-15-22"></a>show(`Is arr(1, 2, 3) an array: `, util.isArray(arr(1, 2, 3)));
<a id="__codelineno-15-23" name="__codelineno-15-23" href="#__codelineno-15-23"></a>
<a id="__codelineno-15-24" name="__codelineno-15-24" href="#__codelineno-15-24"></a>!! 类型转换
<a id="__codelineno-15-25" name="__codelineno-15-25" href="#__codelineno-15-25"></a>show(`Convert &#39;123&#39; to number: `, util.toNumber(`123`));
<a id="__codelineno-15-26" name="__codelineno-15-26" href="#__codelineno-15-26"></a>show(`Convert 123 to string: `, util.toString(123));
<a id="__codelineno-15-27" name="__codelineno-15-27" href="#__codelineno-15-27"></a>
<a id="__codelineno-15-28" name="__codelineno-15-28" href="#__codelineno-15-28"></a>!! 类型判断
<a id="__codelineno-15-29" name="__codelineno-15-29" href="#__codelineno-15-29"></a>show(`Type of 123: `, util.typeof(123));
<a id="__codelineno-15-30" name="__codelineno-15-30" href="#__codelineno-15-30"></a>show(`Type of &#39;Hello&#39;: `, util.typeof(`Hello`));
<a id="__codelineno-15-31" name="__codelineno-15-31" href="#__codelineno-15-31"></a>show(`Type of arr(1, 2, 3): `, util.typeof(arr(1, 2, 3)));
</code></pre></div>
<h2 id="_10">注意事项<a class="headerlink" href="#_10" title="Permanent link">&para;</a></h2>
<ul>
<li>所有工具函数都不会修改原始值,而是返回新的值</li>
<li>类型检查函数会尝试进行合理的类型判断</li>
<li>对于 <code>isNumber</code> 函数,字符串形式的数字也会被认为是数字</li>
<li>对于 <code>isArray</code> 函数,字符串形式的数组表示也会被认为是数组</li>
</ul>
</article>
</div>
<script>var target=document.getElementById(location.hash.slice(1));target&&target.name&&(target.checked=target.name.startsWith("__tabbed_"))</script>
</div>
</main>
<footer class="md-footer">
<div class="md-footer-meta md-typeset">
<div class="md-footer-meta__inner md-grid">
<div class="md-copyright">
Made with
<a href="https://squidfunk.github.io/mkdocs-material/" target="_blank" rel="noopener">
Material for MkDocs
</a>
</div>
<div class="md-social">
<a href="https://github.com/Oraset/oraset" target="_blank" rel="noopener" title="github.com" class="md-social__link">
<svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 512 512"><!--! Font Awesome Free 7.1.0 by @fontawesome - https://fontawesome.com License - https://fontawesome.com/license/free (Icons: CC BY 4.0, Fonts: SIL OFL 1.1, Code: MIT License) Copyright 2025 Fonticons, Inc.--><path d="M173.9 397.4c0 2-2.3 3.6-5.2 3.6-3.3.3-5.6-1.3-5.6-3.6 0-2 2.3-3.6 5.2-3.6 3-.3 5.6 1.3 5.6 3.6m-31.1-4.5c-.7 2 1.3 4.3 4.3 4.9 2.6 1 5.6 0 6.2-2s-1.3-4.3-4.3-5.2c-2.6-.7-5.5.3-6.2 2.3m44.2-1.7c-2.9.7-4.9 2.6-4.6 4.9.3 2 2.9 3.3 5.9 2.6 2.9-.7 4.9-2.6 4.6-4.6-.3-1.9-3-3.2-5.9-2.9M252.8 8C114.1 8 8 113.3 8 252c0 110.9 69.8 205.8 169.5 239.2 12.8 2.3 17.3-5.6 17.3-12.1 0-6.2-.3-40.4-.3-61.4 0 0-70 15-84.7-29.8 0 0-11.4-29.1-27.8-36.6 0 0-22.9-15.7 1.6-15.4 0 0 24.9 2 38.6 25.8 21.9 38.6 58.6 27.5 72.9 20.9 2.3-16 8.8-27.1 16-33.7-55.9-6.2-112.3-14.3-112.3-110.5 0-27.5 7.6-41.3 23.6-58.9-2.6-6.5-11.1-33.3 2.6-67.9 20.9-6.5 69 27 69 27 20-5.6 41.5-8.5 62.8-8.5s42.8 2.9 62.8 8.5c0 0 48.1-33.6 69-27 13.7 34.7 5.2 61.4 2.6 67.9 16 17.7 25.8 31.5 25.8 58.9 0 96.5-58.9 104.2-114.8 110.5 9.2 7.9 17 22.9 17 46.4 0 33.7-.3 75.4-.3 83.6 0 6.5 4.6 14.4 17.3 12.1C436.2 457.8 504 362.9 504 252 504 113.3 391.5 8 252.8 8M105.2 352.9c-1.3 1-1 3.3.7 5.2 1.6 1.6 3.9 2.3 5.2 1 1.3-1 1-3.3-.7-5.2-1.6-1.6-3.9-2.3-5.2-1m-10.8-8.1c-.7 1.3.3 2.9 2.3 3.9 1.6 1 3.6.7 4.3-.7.7-1.3-.3-2.9-2.3-3.9-2-.6-3.6-.3-4.3.7m32.4 35.6c-1.6 1.3-1 4.3 1.3 6.2 2.3 2.3 5.2 2.6 6.5 1 1.3-1.3.7-4.3-1.3-6.2-2.2-2.3-5.2-2.6-6.5-1m-11.4-14.7c-1.6 1-1.6 3.6 0 5.9s4.3 3.3 5.6 2.3c1.6-1.3 1.6-3.9 0-6.2-1.4-2.3-4-3.3-5.6-2"/></svg>
</a>
<a href="https://bbs.ecuil.com" target="_blank" rel="noopener" title="bbs.ecuil.com" class="md-social__link">
<svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 576 512"><!--! Font Awesome Free 7.1.0 by @fontawesome - https://fontawesome.com License - https://fontawesome.com/license/free (Icons: CC BY 4.0, Fonts: SIL OFL 1.1, Code: MIT License) Copyright 2025 Fonticons, Inc.--><path d="M384 144c0 97.2-86 176-192 176-26.7 0-52.1-5-75.2-14l-81.6 43.2c-9.3 4.9-20.7 3.2-28.2-4.2s-9.2-18.9-4.2-28.2l35.6-67.2C14.3 220.2 0 183.6 0 144 0 46.8 86-32 192-32s192 78.8 192 176m0 368c-94.1 0-172.4-62.1-188.8-144 120-1.5 224.3-86.9 235.8-202.7 83.3 19.2 145 88.3 145 170.7 0 39.6-14.3 76.2-38.4 105.6l35.6 67.2c4.9 9.3 3.2 20.7-4.2 28.2s-18.9 9.2-28.2 4.2L459.2 498c-23.1 9-48.5 14-75.2 14"/></svg>
</a>
</div>
</div>
</div>
</footer>
</div>
<div class="md-dialog" data-md-component="dialog">
<div class="md-dialog__inner md-typeset"></div>
</div>
<script id="__config" type="application/json">{"annotate": null, "base": "../..", "features": ["navigation.tabs", "navigation.sections", "search.suggest", "search.highlight", "content.code.copy", "content.code.select"], "search": "../../assets/javascripts/workers/search.2c215733.min.js", "tags": null, "translations": {"clipboard.copied": "\u5df2\u590d\u5236", "clipboard.copy": "\u590d\u5236", "search.result.more.one": "\u5728\u8be5\u9875\u4e0a\u8fd8\u6709 1 \u4e2a\u7b26\u5408\u6761\u4ef6\u7684\u7ed3\u679c", "search.result.more.other": "\u5728\u8be5\u9875\u4e0a\u8fd8\u6709 # \u4e2a\u7b26\u5408\u6761\u4ef6\u7684\u7ed3\u679c", "search.result.none": "\u6ca1\u6709\u627e\u5230\u7b26\u5408\u6761\u4ef6\u7684\u7ed3\u679c", "search.result.one": "\u627e\u5230 1 \u4e2a\u7b26\u5408\u6761\u4ef6\u7684\u7ed3\u679c", "search.result.other": "# \u4e2a\u7b26\u5408\u6761\u4ef6\u7684\u7ed3\u679c", "search.result.placeholder": "\u952e\u5165\u4ee5\u5f00\u59cb\u641c\u7d22", "search.result.term.missing": "\u7f3a\u5c11", "select.version": "\u9009\u62e9\u5f53\u524d\u7248\u672c"}, "version": null}</script>
<script src="../../assets/javascripts/bundle.79ae519e.min.js"></script>
</body>
</html>