1729 lines
62 KiB
HTML
1729 lines
62 KiB
HTML
|
|
<!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/tutorial/functions-and-classes/">
|
|
|
|
|
|
<link rel="prev" href="../control-structures/">
|
|
|
|
|
|
<link rel="next" href="../../libraries/math/">
|
|
|
|
|
|
|
|
|
|
|
|
<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 md-tabs__item--active">
|
|
<a href="../quickstart/" class="md-tabs__link">
|
|
|
|
|
|
|
|
入门教程
|
|
|
|
</a>
|
|
</li>
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
<li class="md-tabs__item">
|
|
<a href="../../libraries/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--active md-nav__item--section md-nav__item--nested">
|
|
|
|
|
|
|
|
<input class="md-nav__toggle md-toggle " type="checkbox" id="__nav_2" checked>
|
|
|
|
|
|
<label class="md-nav__link" for="__nav_2" id="__nav_2_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_2_label" aria-expanded="true">
|
|
<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="../quickstart/" class="md-nav__link">
|
|
|
|
|
|
|
|
<span class="md-ellipsis">
|
|
|
|
|
|
快速开始
|
|
|
|
|
|
|
|
</span>
|
|
|
|
|
|
|
|
</a>
|
|
</li>
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
<li class="md-nav__item">
|
|
<a href="../basic-syntax/" class="md-nav__link">
|
|
|
|
|
|
|
|
<span class="md-ellipsis">
|
|
|
|
|
|
基本语法
|
|
|
|
|
|
|
|
</span>
|
|
|
|
|
|
|
|
</a>
|
|
</li>
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
<li class="md-nav__item">
|
|
<a href="../control-structures/" 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>
|
|
|
|
<nav class="md-nav" aria-label="函数">
|
|
<ul class="md-nav__list">
|
|
|
|
<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>
|
|
|
|
</li>
|
|
|
|
<li class="md-nav__item">
|
|
<a href="#_5" class="md-nav__link">
|
|
<span class="md-ellipsis">
|
|
|
|
参数
|
|
|
|
</span>
|
|
</a>
|
|
|
|
</li>
|
|
|
|
<li class="md-nav__item">
|
|
<a href="#_6" class="md-nav__link">
|
|
<span class="md-ellipsis">
|
|
|
|
返回值
|
|
|
|
</span>
|
|
</a>
|
|
|
|
</li>
|
|
|
|
<li class="md-nav__item">
|
|
<a href="#_7" class="md-nav__link">
|
|
<span class="md-ellipsis">
|
|
|
|
无参数函数
|
|
|
|
</span>
|
|
</a>
|
|
|
|
</li>
|
|
|
|
<li class="md-nav__item">
|
|
<a href="#_8" class="md-nav__link">
|
|
<span class="md-ellipsis">
|
|
|
|
默认参数
|
|
|
|
</span>
|
|
</a>
|
|
|
|
</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>
|
|
|
|
<li class="md-nav__item">
|
|
<a href="#_11" class="md-nav__link">
|
|
<span class="md-ellipsis">
|
|
|
|
匿名函数
|
|
|
|
</span>
|
|
</a>
|
|
|
|
</li>
|
|
|
|
</ul>
|
|
</nav>
|
|
|
|
</li>
|
|
|
|
<li class="md-nav__item">
|
|
<a href="#_12" 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="#_13" class="md-nav__link">
|
|
<span class="md-ellipsis">
|
|
|
|
类定义
|
|
|
|
</span>
|
|
</a>
|
|
|
|
</li>
|
|
|
|
<li class="md-nav__item">
|
|
<a href="#_14" class="md-nav__link">
|
|
<span class="md-ellipsis">
|
|
|
|
类的实例化
|
|
|
|
</span>
|
|
</a>
|
|
|
|
</li>
|
|
|
|
<li class="md-nav__item">
|
|
<a href="#_15" class="md-nav__link">
|
|
<span class="md-ellipsis">
|
|
|
|
类的方法
|
|
|
|
</span>
|
|
</a>
|
|
|
|
</li>
|
|
|
|
<li class="md-nav__item">
|
|
<a href="#_16" class="md-nav__link">
|
|
<span class="md-ellipsis">
|
|
|
|
类的属性
|
|
|
|
</span>
|
|
</a>
|
|
|
|
</li>
|
|
|
|
<li class="md-nav__item">
|
|
<a href="#_17" class="md-nav__link">
|
|
<span class="md-ellipsis">
|
|
|
|
继承
|
|
|
|
</span>
|
|
</a>
|
|
|
|
</li>
|
|
|
|
<li class="md-nav__item">
|
|
<a href="#_18" class="md-nav__link">
|
|
<span class="md-ellipsis">
|
|
|
|
静态方法
|
|
|
|
</span>
|
|
</a>
|
|
|
|
</li>
|
|
|
|
</ul>
|
|
</nav>
|
|
|
|
</li>
|
|
|
|
<li class="md-nav__item">
|
|
<a href="#_19" 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="#_20" class="md-nav__link">
|
|
<span class="md-ellipsis">
|
|
|
|
计算器类
|
|
|
|
</span>
|
|
</a>
|
|
|
|
</li>
|
|
|
|
<li class="md-nav__item">
|
|
<a href="#_21" class="md-nav__link">
|
|
<span class="md-ellipsis">
|
|
|
|
图书管理系统
|
|
|
|
</span>
|
|
</a>
|
|
|
|
</li>
|
|
|
|
</ul>
|
|
</nav>
|
|
|
|
</li>
|
|
|
|
<li class="md-nav__item">
|
|
<a href="#_22" class="md-nav__link">
|
|
<span class="md-ellipsis">
|
|
|
|
注意事项
|
|
|
|
</span>
|
|
</a>
|
|
|
|
</li>
|
|
|
|
<li class="md-nav__item">
|
|
<a href="#_23" class="md-nav__link">
|
|
<span class="md-ellipsis">
|
|
|
|
练习
|
|
|
|
</span>
|
|
</a>
|
|
|
|
</li>
|
|
|
|
<li class="md-nav__item">
|
|
<a href="#_24" class="md-nav__link">
|
|
<span class="md-ellipsis">
|
|
|
|
小结
|
|
|
|
</span>
|
|
</a>
|
|
|
|
</li>
|
|
|
|
</ul>
|
|
|
|
</nav>
|
|
|
|
</li>
|
|
|
|
|
|
|
|
|
|
</ul>
|
|
</nav>
|
|
|
|
</li>
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
<li class="md-nav__item md-nav__item--nested">
|
|
|
|
|
|
|
|
<input class="md-nav__toggle md-toggle " type="checkbox" id="__nav_3" >
|
|
|
|
|
|
<label class="md-nav__link" for="__nav_3" id="__nav_3_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_3_label" aria-expanded="false">
|
|
<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="../../libraries/math/" class="md-nav__link">
|
|
|
|
|
|
|
|
<span class="md-ellipsis">
|
|
|
|
|
|
数学库
|
|
|
|
|
|
|
|
</span>
|
|
|
|
|
|
|
|
</a>
|
|
</li>
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
<li class="md-nav__item">
|
|
<a href="../../libraries/string/" class="md-nav__link">
|
|
|
|
|
|
|
|
<span class="md-ellipsis">
|
|
|
|
|
|
字符串库
|
|
|
|
|
|
|
|
</span>
|
|
|
|
|
|
|
|
</a>
|
|
</li>
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
<li class="md-nav__item">
|
|
<a href="../../libraries/array/" class="md-nav__link">
|
|
|
|
|
|
|
|
<span class="md-ellipsis">
|
|
|
|
|
|
数组库
|
|
|
|
|
|
|
|
</span>
|
|
|
|
|
|
|
|
</a>
|
|
</li>
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
<li class="md-nav__item">
|
|
<a href="../../libraries/util/" class="md-nav__link">
|
|
|
|
|
|
|
|
<span class="md-ellipsis">
|
|
|
|
|
|
工具库
|
|
|
|
|
|
|
|
</span>
|
|
|
|
|
|
|
|
</a>
|
|
</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>
|
|
|
|
<nav class="md-nav" aria-label="函数">
|
|
<ul class="md-nav__list">
|
|
|
|
<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>
|
|
|
|
</li>
|
|
|
|
<li class="md-nav__item">
|
|
<a href="#_5" class="md-nav__link">
|
|
<span class="md-ellipsis">
|
|
|
|
参数
|
|
|
|
</span>
|
|
</a>
|
|
|
|
</li>
|
|
|
|
<li class="md-nav__item">
|
|
<a href="#_6" class="md-nav__link">
|
|
<span class="md-ellipsis">
|
|
|
|
返回值
|
|
|
|
</span>
|
|
</a>
|
|
|
|
</li>
|
|
|
|
<li class="md-nav__item">
|
|
<a href="#_7" class="md-nav__link">
|
|
<span class="md-ellipsis">
|
|
|
|
无参数函数
|
|
|
|
</span>
|
|
</a>
|
|
|
|
</li>
|
|
|
|
<li class="md-nav__item">
|
|
<a href="#_8" class="md-nav__link">
|
|
<span class="md-ellipsis">
|
|
|
|
默认参数
|
|
|
|
</span>
|
|
</a>
|
|
|
|
</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>
|
|
|
|
<li class="md-nav__item">
|
|
<a href="#_11" class="md-nav__link">
|
|
<span class="md-ellipsis">
|
|
|
|
匿名函数
|
|
|
|
</span>
|
|
</a>
|
|
|
|
</li>
|
|
|
|
</ul>
|
|
</nav>
|
|
|
|
</li>
|
|
|
|
<li class="md-nav__item">
|
|
<a href="#_12" 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="#_13" class="md-nav__link">
|
|
<span class="md-ellipsis">
|
|
|
|
类定义
|
|
|
|
</span>
|
|
</a>
|
|
|
|
</li>
|
|
|
|
<li class="md-nav__item">
|
|
<a href="#_14" class="md-nav__link">
|
|
<span class="md-ellipsis">
|
|
|
|
类的实例化
|
|
|
|
</span>
|
|
</a>
|
|
|
|
</li>
|
|
|
|
<li class="md-nav__item">
|
|
<a href="#_15" class="md-nav__link">
|
|
<span class="md-ellipsis">
|
|
|
|
类的方法
|
|
|
|
</span>
|
|
</a>
|
|
|
|
</li>
|
|
|
|
<li class="md-nav__item">
|
|
<a href="#_16" class="md-nav__link">
|
|
<span class="md-ellipsis">
|
|
|
|
类的属性
|
|
|
|
</span>
|
|
</a>
|
|
|
|
</li>
|
|
|
|
<li class="md-nav__item">
|
|
<a href="#_17" class="md-nav__link">
|
|
<span class="md-ellipsis">
|
|
|
|
继承
|
|
|
|
</span>
|
|
</a>
|
|
|
|
</li>
|
|
|
|
<li class="md-nav__item">
|
|
<a href="#_18" class="md-nav__link">
|
|
<span class="md-ellipsis">
|
|
|
|
静态方法
|
|
|
|
</span>
|
|
</a>
|
|
|
|
</li>
|
|
|
|
</ul>
|
|
</nav>
|
|
|
|
</li>
|
|
|
|
<li class="md-nav__item">
|
|
<a href="#_19" 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="#_20" class="md-nav__link">
|
|
<span class="md-ellipsis">
|
|
|
|
计算器类
|
|
|
|
</span>
|
|
</a>
|
|
|
|
</li>
|
|
|
|
<li class="md-nav__item">
|
|
<a href="#_21" class="md-nav__link">
|
|
<span class="md-ellipsis">
|
|
|
|
图书管理系统
|
|
|
|
</span>
|
|
</a>
|
|
|
|
</li>
|
|
|
|
</ul>
|
|
</nav>
|
|
|
|
</li>
|
|
|
|
<li class="md-nav__item">
|
|
<a href="#_22" class="md-nav__link">
|
|
<span class="md-ellipsis">
|
|
|
|
注意事项
|
|
|
|
</span>
|
|
</a>
|
|
|
|
</li>
|
|
|
|
<li class="md-nav__item">
|
|
<a href="#_23" class="md-nav__link">
|
|
<span class="md-ellipsis">
|
|
|
|
练习
|
|
|
|
</span>
|
|
</a>
|
|
|
|
</li>
|
|
|
|
<li class="md-nav__item">
|
|
<a href="#_24" 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">¶</a></h1>
|
|
<p>本教程将详细介绍 Oraset 编程语言的函数和类,帮助你掌握模块化编程和面向对象编程的基本概念。</p>
|
|
<h2 id="_2">函数<a class="headerlink" href="#_2" title="Permanent link">¶</a></h2>
|
|
<h3 id="_3">函数定义<a class="headerlink" href="#_3" title="Permanent link">¶</a></h3>
|
|
<p>使用 <code>def</code> 关键字定义函数:</p>
|
|
<div class="highlight"><pre><span></span><code><a id="__codelineno-0-1" name="__codelineno-0-1" href="#__codelineno-0-1"></a>!! 函数定义
|
|
<a id="__codelineno-0-2" name="__codelineno-0-2" href="#__codelineno-0-2"></a>def greet(name) {
|
|
<a id="__codelineno-0-3" name="__codelineno-0-3" href="#__codelineno-0-3"></a> show(`Hello, `, name, `!`);
|
|
<a id="__codelineno-0-4" name="__codelineno-0-4" href="#__codelineno-0-4"></a>}
|
|
</code></pre></div>
|
|
<h3 id="_4">函数调用<a class="headerlink" href="#_4" title="Permanent link">¶</a></h3>
|
|
<p>通过函数名和参数列表调用函数:</p>
|
|
<div class="highlight"><pre><span></span><code><a id="__codelineno-1-1" name="__codelineno-1-1" href="#__codelineno-1-1"></a>!! 函数调用
|
|
<a id="__codelineno-1-2" name="__codelineno-1-2" href="#__codelineno-1-2"></a>greet(`Oraset`); !! 输出: Hello, Oraset!
|
|
</code></pre></div>
|
|
<h3 id="_5">参数<a class="headerlink" href="#_5" title="Permanent link">¶</a></h3>
|
|
<p>函数可以接受多个参数:</p>
|
|
<div class="highlight"><pre><span></span><code><a id="__codelineno-2-1" name="__codelineno-2-1" href="#__codelineno-2-1"></a>!! 多参数函数
|
|
<a id="__codelineno-2-2" name="__codelineno-2-2" href="#__codelineno-2-2"></a>def add(a, b) {
|
|
<a id="__codelineno-2-3" name="__codelineno-2-3" href="#__codelineno-2-3"></a> return a + b;
|
|
<a id="__codelineno-2-4" name="__codelineno-2-4" href="#__codelineno-2-4"></a>}
|
|
<a id="__codelineno-2-5" name="__codelineno-2-5" href="#__codelineno-2-5"></a>
|
|
<a id="__codelineno-2-6" name="__codelineno-2-6" href="#__codelineno-2-6"></a>result = add(10, 5);
|
|
<a id="__codelineno-2-7" name="__codelineno-2-7" href="#__codelineno-2-7"></a>show(`10 + 5 = `, result); !! 输出: 15
|
|
</code></pre></div>
|
|
<h3 id="_6">返回值<a class="headerlink" href="#_6" title="Permanent link">¶</a></h3>
|
|
<p>使用 <code>return</code> 语句返回函数结果:</p>
|
|
<div class="highlight"><pre><span></span><code><a id="__codelineno-3-1" name="__codelineno-3-1" href="#__codelineno-3-1"></a>!! 带返回值的函数
|
|
<a id="__codelineno-3-2" name="__codelineno-3-2" href="#__codelineno-3-2"></a>def multiply(a, b) {
|
|
<a id="__codelineno-3-3" name="__codelineno-3-3" href="#__codelineno-3-3"></a> return a * b;
|
|
<a id="__codelineno-3-4" name="__codelineno-3-4" href="#__codelineno-3-4"></a>}
|
|
<a id="__codelineno-3-5" name="__codelineno-3-5" href="#__codelineno-3-5"></a>
|
|
<a id="__codelineno-3-6" name="__codelineno-3-6" href="#__codelineno-3-6"></a>result = multiply(10, 5);
|
|
<a id="__codelineno-3-7" name="__codelineno-3-7" href="#__codelineno-3-7"></a>show(`10 * 5 = `, result); !! 输出: 50
|
|
</code></pre></div>
|
|
<h3 id="_7">无参数函数<a class="headerlink" href="#_7" title="Permanent link">¶</a></h3>
|
|
<p>函数可以不接受任何参数:</p>
|
|
<div class="highlight"><pre><span></span><code><a id="__codelineno-4-1" name="__codelineno-4-1" href="#__codelineno-4-1"></a>!! 无参数函数
|
|
<a id="__codelineno-4-2" name="__codelineno-4-2" href="#__codelineno-4-2"></a>def say_hello() {
|
|
<a id="__codelineno-4-3" name="__codelineno-4-3" href="#__codelineno-4-3"></a> show(`Hello, World!`);
|
|
<a id="__codelineno-4-4" name="__codelineno-4-4" href="#__codelineno-4-4"></a>}
|
|
<a id="__codelineno-4-5" name="__codelineno-4-5" href="#__codelineno-4-5"></a>
|
|
<a id="__codelineno-4-6" name="__codelineno-4-6" href="#__codelineno-4-6"></a>say_hello(); !! 输出: Hello, World!
|
|
</code></pre></div>
|
|
<h3 id="_8">默认参数<a class="headerlink" href="#_8" title="Permanent link">¶</a></h3>
|
|
<p>函数可以有默认参数值:</p>
|
|
<div class="highlight"><pre><span></span><code><a id="__codelineno-5-1" name="__codelineno-5-1" href="#__codelineno-5-1"></a>!! 默认参数
|
|
<a id="__codelineno-5-2" name="__codelineno-5-2" href="#__codelineno-5-2"></a>def greet(name = `World`) {
|
|
<a id="__codelineno-5-3" name="__codelineno-5-3" href="#__codelineno-5-3"></a> show(`Hello, `, name, `!`);
|
|
<a id="__codelineno-5-4" name="__codelineno-5-4" href="#__codelineno-5-4"></a>}
|
|
<a id="__codelineno-5-5" name="__codelineno-5-5" href="#__codelineno-5-5"></a>
|
|
<a id="__codelineno-5-6" name="__codelineno-5-6" href="#__codelineno-5-6"></a>greet(); !! 输出: Hello, World!
|
|
<a id="__codelineno-5-7" name="__codelineno-5-7" href="#__codelineno-5-7"></a>greet(`Oraset`); !! 输出: Hello, Oraset!
|
|
</code></pre></div>
|
|
<h3 id="_9">可变参数<a class="headerlink" href="#_9" title="Permanent link">¶</a></h3>
|
|
<p>函数可以接受可变数量的参数:</p>
|
|
<div class="highlight"><pre><span></span><code><a id="__codelineno-6-1" name="__codelineno-6-1" href="#__codelineno-6-1"></a>!! 可变参数
|
|
<a id="__codelineno-6-2" name="__codelineno-6-2" href="#__codelineno-6-2"></a>def sum(...args) {
|
|
<a id="__codelineno-6-3" name="__codelineno-6-3" href="#__codelineno-6-3"></a> total = 0;
|
|
<a id="__codelineno-6-4" name="__codelineno-6-4" href="#__codelineno-6-4"></a> i = 0;
|
|
<a id="__codelineno-6-5" name="__codelineno-6-5" href="#__codelineno-6-5"></a> while (i < args.length) {
|
|
<a id="__codelineno-6-6" name="__codelineno-6-6" href="#__codelineno-6-6"></a> total = total + args[i];
|
|
<a id="__codelineno-6-7" name="__codelineno-6-7" href="#__codelineno-6-7"></a> i = i + 1;
|
|
<a id="__codelineno-6-8" name="__codelineno-6-8" href="#__codelineno-6-8"></a> }
|
|
<a id="__codelineno-6-9" name="__codelineno-6-9" href="#__codelineno-6-9"></a> return total;
|
|
<a id="__codelineno-6-10" name="__codelineno-6-10" href="#__codelineno-6-10"></a>}
|
|
<a id="__codelineno-6-11" name="__codelineno-6-11" href="#__codelineno-6-11"></a>
|
|
<a id="__codelineno-6-12" name="__codelineno-6-12" href="#__codelineno-6-12"></a>result = sum(1, 2, 3, 4, 5);
|
|
<a id="__codelineno-6-13" name="__codelineno-6-13" href="#__codelineno-6-13"></a>show(`Sum: `, result); !! 输出: 15
|
|
</code></pre></div>
|
|
<h3 id="_10">递归函数<a class="headerlink" href="#_10" title="Permanent link">¶</a></h3>
|
|
<p>函数可以递归调用自身:</p>
|
|
<div class="highlight"><pre><span></span><code><a id="__codelineno-7-1" name="__codelineno-7-1" href="#__codelineno-7-1"></a>!! 递归函数
|
|
<a id="__codelineno-7-2" name="__codelineno-7-2" href="#__codelineno-7-2"></a>def factorial(n) {
|
|
<a id="__codelineno-7-3" name="__codelineno-7-3" href="#__codelineno-7-3"></a> if (n <= 1) {
|
|
<a id="__codelineno-7-4" name="__codelineno-7-4" href="#__codelineno-7-4"></a> return 1;
|
|
<a id="__codelineno-7-5" name="__codelineno-7-5" href="#__codelineno-7-5"></a> }
|
|
<a id="__codelineno-7-6" name="__codelineno-7-6" href="#__codelineno-7-6"></a> return n * factorial(n - 1);
|
|
<a id="__codelineno-7-7" name="__codelineno-7-7" href="#__codelineno-7-7"></a>}
|
|
<a id="__codelineno-7-8" name="__codelineno-7-8" href="#__codelineno-7-8"></a>
|
|
<a id="__codelineno-7-9" name="__codelineno-7-9" href="#__codelineno-7-9"></a>result = factorial(5);
|
|
<a id="__codelineno-7-10" name="__codelineno-7-10" href="#__codelineno-7-10"></a>show(`5! = `, result); !! 输出: 120
|
|
</code></pre></div>
|
|
<h3 id="_11">匿名函数<a class="headerlink" href="#_11" title="Permanent link">¶</a></h3>
|
|
<p>Oraset 支持匿名函数(也称为 lambda 函数):</p>
|
|
<div class="highlight"><pre><span></span><code><a id="__codelineno-8-1" name="__codelineno-8-1" href="#__codelineno-8-1"></a>!! 匿名函数
|
|
<a id="__codelineno-8-2" name="__codelineno-8-2" href="#__codelineno-8-2"></a>double = lambda x: x * 2;
|
|
<a id="__codelineno-8-3" name="__codelineno-8-3" href="#__codelineno-8-3"></a>show(`Double of 5: `, double(5)); !! 输出: 10
|
|
<a id="__codelineno-8-4" name="__codelineno-8-4" href="#__codelineno-8-4"></a>
|
|
<a id="__codelineno-8-5" name="__codelineno-8-5" href="#__codelineno-8-5"></a>add = lambda a, b: a + b;
|
|
<a id="__codelineno-8-6" name="__codelineno-8-6" href="#__codelineno-8-6"></a>show(`10 + 5 = `, add(10, 5)); !! 输出: 15
|
|
</code></pre></div>
|
|
<h2 id="_12">类<a class="headerlink" href="#_12" title="Permanent link">¶</a></h2>
|
|
<h3 id="_13">类定义<a class="headerlink" href="#_13" title="Permanent link">¶</a></h3>
|
|
<p>使用 <code>class</code> 关键字定义类:</p>
|
|
<div class="highlight"><pre><span></span><code><a id="__codelineno-9-1" name="__codelineno-9-1" href="#__codelineno-9-1"></a>!! 类定义
|
|
<a id="__codelineno-9-2" name="__codelineno-9-2" href="#__codelineno-9-2"></a>class Person {
|
|
<a id="__codelineno-9-3" name="__codelineno-9-3" href="#__codelineno-9-3"></a> name = `Unknown`;
|
|
<a id="__codelineno-9-4" name="__codelineno-9-4" href="#__codelineno-9-4"></a> age = 0;
|
|
<a id="__codelineno-9-5" name="__codelineno-9-5" href="#__codelineno-9-5"></a>
|
|
<a id="__codelineno-9-6" name="__codelineno-9-6" href="#__codelineno-9-6"></a> def __init__(self, name, age) {
|
|
<a id="__codelineno-9-7" name="__codelineno-9-7" href="#__codelineno-9-7"></a> self.name = name;
|
|
<a id="__codelineno-9-8" name="__codelineno-9-8" href="#__codelineno-9-8"></a> self.age = age;
|
|
<a id="__codelineno-9-9" name="__codelineno-9-9" href="#__codelineno-9-9"></a> }
|
|
<a id="__codelineno-9-10" name="__codelineno-9-10" href="#__codelineno-9-10"></a>
|
|
<a id="__codelineno-9-11" name="__codelineno-9-11" href="#__codelineno-9-11"></a> def greet(self) {
|
|
<a id="__codelineno-9-12" name="__codelineno-9-12" href="#__codelineno-9-12"></a> show(`Hello, my name is `, self.name, ` and I am `, self.age, ` years old.`);
|
|
<a id="__codelineno-9-13" name="__codelineno-9-13" href="#__codelineno-9-13"></a> }
|
|
<a id="__codelineno-9-14" name="__codelineno-9-14" href="#__codelineno-9-14"></a>
|
|
<a id="__codelineno-9-15" name="__codelineno-9-15" href="#__codelineno-9-15"></a> def celebrate_birthday(self) {
|
|
<a id="__codelineno-9-16" name="__codelineno-9-16" href="#__codelineno-9-16"></a> self.age = self.age + 1;
|
|
<a id="__codelineno-9-17" name="__codelineno-9-17" href="#__codelineno-9-17"></a> show(`Happy birthday! I am now `, self.age, ` years old.`);
|
|
<a id="__codelineno-9-18" name="__codelineno-9-18" href="#__codelineno-9-18"></a> }
|
|
<a id="__codelineno-9-19" name="__codelineno-9-19" href="#__codelineno-9-19"></a>}
|
|
</code></pre></div>
|
|
<h3 id="_14">类的实例化<a class="headerlink" href="#_14" title="Permanent link">¶</a></h3>
|
|
<p>创建类的实例:</p>
|
|
<div class="highlight"><pre><span></span><code><a id="__codelineno-10-1" name="__codelineno-10-1" href="#__codelineno-10-1"></a>!! 类的实例化
|
|
<a id="__codelineno-10-2" name="__codelineno-10-2" href="#__codelineno-10-2"></a>person = Person(`John`, 30);
|
|
<a id="__codelineno-10-3" name="__codelineno-10-3" href="#__codelineno-10-3"></a>person.greet(); !! 输出: Hello, my name is John and I am 30 years old.
|
|
</code></pre></div>
|
|
<h3 id="_15">类的方法<a class="headerlink" href="#_15" title="Permanent link">¶</a></h3>
|
|
<p>调用类的方法:</p>
|
|
<div class="highlight"><pre><span></span><code><a id="__codelineno-11-1" name="__codelineno-11-1" href="#__codelineno-11-1"></a>!! 调用类的方法
|
|
<a id="__codelineno-11-2" name="__codelineno-11-2" href="#__codelineno-11-2"></a>person = Person(`John`, 30);
|
|
<a id="__codelineno-11-3" name="__codelineno-11-3" href="#__codelineno-11-3"></a>person.greet();
|
|
<a id="__codelineno-11-4" name="__codelineno-11-4" href="#__codelineno-11-4"></a>person.celebrate_birthday(); !! 输出: Happy birthday! I am now 31 years old.
|
|
<a id="__codelineno-11-5" name="__codelineno-11-5" href="#__codelineno-11-5"></a>person.greet(); !! 输出: Hello, my name is John and I am 31 years old.
|
|
</code></pre></div>
|
|
<h3 id="_16">类的属性<a class="headerlink" href="#_16" title="Permanent link">¶</a></h3>
|
|
<p>访问和修改类的属性:</p>
|
|
<div class="highlight"><pre><span></span><code><a id="__codelineno-12-1" name="__codelineno-12-1" href="#__codelineno-12-1"></a>!! 访问和修改类的属性
|
|
<a id="__codelineno-12-2" name="__codelineno-12-2" href="#__codelineno-12-2"></a>person = Person(`John`, 30);
|
|
<a id="__codelineno-12-3" name="__codelineno-12-3" href="#__codelineno-12-3"></a>show(`Name: `, person.name); !! 输出: John
|
|
<a id="__codelineno-12-4" name="__codelineno-12-4" href="#__codelineno-12-4"></a>show(`Age: `, person.age); !! 输出: 30
|
|
<a id="__codelineno-12-5" name="__codelineno-12-5" href="#__codelineno-12-5"></a>
|
|
<a id="__codelineno-12-6" name="__codelineno-12-6" href="#__codelineno-12-6"></a>person.name = `Jane`;
|
|
<a id="__codelineno-12-7" name="__codelineno-12-7" href="#__codelineno-12-7"></a>person.age = 25;
|
|
<a id="__codelineno-12-8" name="__codelineno-12-8" href="#__codelineno-12-8"></a>show(`Name: `, person.name); !! 输出: Jane
|
|
<a id="__codelineno-12-9" name="__codelineno-12-9" href="#__codelineno-12-9"></a>show(`Age: `, person.age); !! 输出: 25
|
|
</code></pre></div>
|
|
<h3 id="_17">继承<a class="headerlink" href="#_17" title="Permanent link">¶</a></h3>
|
|
<p>类可以继承其他类的属性和方法:</p>
|
|
<div class="highlight"><pre><span></span><code><a id="__codelineno-13-1" name="__codelineno-13-1" href="#__codelineno-13-1"></a>!! 继承
|
|
<a id="__codelineno-13-2" name="__codelineno-13-2" href="#__codelineno-13-2"></a>class Student(Person) {
|
|
<a id="__codelineno-13-3" name="__codelineno-13-3" href="#__codelineno-13-3"></a> student_id = ``;
|
|
<a id="__codelineno-13-4" name="__codelineno-13-4" href="#__codelineno-13-4"></a>
|
|
<a id="__codelineno-13-5" name="__codelineno-13-5" href="#__codelineno-13-5"></a> def __init__(self, name, age, student_id) {
|
|
<a id="__codelineno-13-6" name="__codelineno-13-6" href="#__codelineno-13-6"></a> super().__init__(name, age);
|
|
<a id="__codelineno-13-7" name="__codelineno-13-7" href="#__codelineno-13-7"></a> self.student_id = student_id;
|
|
<a id="__codelineno-13-8" name="__codelineno-13-8" href="#__codelineno-13-8"></a> }
|
|
<a id="__codelineno-13-9" name="__codelineno-13-9" href="#__codelineno-13-9"></a>
|
|
<a id="__codelineno-13-10" name="__codelineno-13-10" href="#__codelineno-13-10"></a> def study(self) {
|
|
<a id="__codelineno-13-11" name="__codelineno-13-11" href="#__codelineno-13-11"></a> show(`I am studying. My student ID is `, self.student_id);
|
|
<a id="__codelineno-13-12" name="__codelineno-13-12" href="#__codelineno-13-12"></a> }
|
|
<a id="__codelineno-13-13" name="__codelineno-13-13" href="#__codelineno-13-13"></a>}
|
|
<a id="__codelineno-13-14" name="__codelineno-13-14" href="#__codelineno-13-14"></a>
|
|
<a id="__codelineno-13-15" name="__codelineno-13-15" href="#__codelineno-13-15"></a>student = Student(`Alice`, 18, `S12345`);
|
|
<a id="__codelineno-13-16" name="__codelineno-13-16" href="#__codelineno-13-16"></a>student.greet(); !! 输出: Hello, my name is Alice and I am 18 years old.
|
|
<a id="__codelineno-13-17" name="__codelineno-13-17" href="#__codelineno-13-17"></a>student.study(); !! 输出: I am studying. My student ID is S12345
|
|
</code></pre></div>
|
|
<h3 id="_18">静态方法<a class="headerlink" href="#_18" title="Permanent link">¶</a></h3>
|
|
<p>类可以有静态方法,不需要实例化就可以调用:</p>
|
|
<div class="highlight"><pre><span></span><code><a id="__codelineno-14-1" name="__codelineno-14-1" href="#__codelineno-14-1"></a>!! 静态方法
|
|
<a id="__codelineno-14-2" name="__codelineno-14-2" href="#__codelineno-14-2"></a>class MathUtils {
|
|
<a id="__codelineno-14-3" name="__codelineno-14-3" href="#__codelineno-14-3"></a> @staticmethod
|
|
<a id="__codelineno-14-4" name="__codelineno-14-4" href="#__codelineno-14-4"></a> def add(a, b) {
|
|
<a id="__codelineno-14-5" name="__codelineno-14-5" href="#__codelineno-14-5"></a> return a + b;
|
|
<a id="__codelineno-14-6" name="__codelineno-14-6" href="#__codelineno-14-6"></a> }
|
|
<a id="__codelineno-14-7" name="__codelineno-14-7" href="#__codelineno-14-7"></a>
|
|
<a id="__codelineno-14-8" name="__codelineno-14-8" href="#__codelineno-14-8"></a> @staticmethod
|
|
<a id="__codelineno-14-9" name="__codelineno-14-9" href="#__codelineno-14-9"></a> def multiply(a, b) {
|
|
<a id="__codelineno-14-10" name="__codelineno-14-10" href="#__codelineno-14-10"></a> return a * b;
|
|
<a id="__codelineno-14-11" name="__codelineno-14-11" href="#__codelineno-14-11"></a> }
|
|
<a id="__codelineno-14-12" name="__codelineno-14-12" href="#__codelineno-14-12"></a>}
|
|
<a id="__codelineno-14-13" name="__codelineno-14-13" href="#__codelineno-14-13"></a>
|
|
<a id="__codelineno-14-14" name="__codelineno-14-14" href="#__codelineno-14-14"></a>result1 = MathUtils.add(10, 5);
|
|
<a id="__codelineno-14-15" name="__codelineno-14-15" href="#__codelineno-14-15"></a>result2 = MathUtils.multiply(10, 5);
|
|
<a id="__codelineno-14-16" name="__codelineno-14-16" href="#__codelineno-14-16"></a>show(`10 + 5 = `, result1); !! 输出: 15
|
|
<a id="__codelineno-14-17" name="__codelineno-14-17" href="#__codelineno-14-17"></a>show(`10 * 5 = `, result2); !! 输出: 50
|
|
</code></pre></div>
|
|
<h2 id="_19">综合示例<a class="headerlink" href="#_19" title="Permanent link">¶</a></h2>
|
|
<h3 id="_20">计算器类<a class="headerlink" href="#_20" title="Permanent link">¶</a></h3>
|
|
<div class="highlight"><pre><span></span><code><a id="__codelineno-15-1" name="__codelineno-15-1" href="#__codelineno-15-1"></a>!! 计算器类
|
|
<a id="__codelineno-15-2" name="__codelineno-15-2" href="#__codelineno-15-2"></a>class Calculator {
|
|
<a id="__codelineno-15-3" name="__codelineno-15-3" href="#__codelineno-15-3"></a> def add(self, a, b) {
|
|
<a id="__codelineno-15-4" name="__codelineno-15-4" href="#__codelineno-15-4"></a> return a + b;
|
|
<a id="__codelineno-15-5" name="__codelineno-15-5" href="#__codelineno-15-5"></a> }
|
|
<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> def subtract(self, a, b) {
|
|
<a id="__codelineno-15-8" name="__codelineno-15-8" href="#__codelineno-15-8"></a> return a - b;
|
|
<a id="__codelineno-15-9" name="__codelineno-15-9" href="#__codelineno-15-9"></a> }
|
|
<a id="__codelineno-15-10" name="__codelineno-15-10" href="#__codelineno-15-10"></a>
|
|
<a id="__codelineno-15-11" name="__codelineno-15-11" href="#__codelineno-15-11"></a> def multiply(self, a, b) {
|
|
<a id="__codelineno-15-12" name="__codelineno-15-12" href="#__codelineno-15-12"></a> return a * b;
|
|
<a id="__codelineno-15-13" name="__codelineno-15-13" href="#__codelineno-15-13"></a> }
|
|
<a id="__codelineno-15-14" name="__codelineno-15-14" href="#__codelineno-15-14"></a>
|
|
<a id="__codelineno-15-15" name="__codelineno-15-15" href="#__codelineno-15-15"></a> def divide(self, a, b) {
|
|
<a id="__codelineno-15-16" name="__codelineno-15-16" href="#__codelineno-15-16"></a> if (b == 0) {
|
|
<a id="__codelineno-15-17" name="__codelineno-15-17" href="#__codelineno-15-17"></a> show(`Error: Division by zero`);
|
|
<a id="__codelineno-15-18" name="__codelineno-15-18" href="#__codelineno-15-18"></a> return null;
|
|
<a id="__codelineno-15-19" name="__codelineno-15-19" href="#__codelineno-15-19"></a> }
|
|
<a id="__codelineno-15-20" name="__codelineno-15-20" href="#__codelineno-15-20"></a> return a / b;
|
|
<a id="__codelineno-15-21" name="__codelineno-15-21" href="#__codelineno-15-21"></a> }
|
|
<a id="__codelineno-15-22" name="__codelineno-15-22" href="#__codelineno-15-22"></a>
|
|
<a id="__codelineno-15-23" name="__codelineno-15-23" href="#__codelineno-15-23"></a> def power(self, a, b) {
|
|
<a id="__codelineno-15-24" name="__codelineno-15-24" href="#__codelineno-15-24"></a> result = 1;
|
|
<a id="__codelineno-15-25" name="__codelineno-15-25" href="#__codelineno-15-25"></a> i = 0;
|
|
<a id="__codelineno-15-26" name="__codelineno-15-26" href="#__codelineno-15-26"></a> while (i < b) {
|
|
<a id="__codelineno-15-27" name="__codelineno-15-27" href="#__codelineno-15-27"></a> result = result * a;
|
|
<a id="__codelineno-15-28" name="__codelineno-15-28" href="#__codelineno-15-28"></a> i = i + 1;
|
|
<a id="__codelineno-15-29" name="__codelineno-15-29" href="#__codelineno-15-29"></a> }
|
|
<a id="__codelineno-15-30" name="__codelineno-15-30" href="#__codelineno-15-30"></a> return result;
|
|
<a id="__codelineno-15-31" name="__codelineno-15-31" href="#__codelineno-15-31"></a> }
|
|
<a id="__codelineno-15-32" name="__codelineno-15-32" href="#__codelineno-15-32"></a>}
|
|
<a id="__codelineno-15-33" name="__codelineno-15-33" href="#__codelineno-15-33"></a>
|
|
<a id="__codelineno-15-34" name="__codelineno-15-34" href="#__codelineno-15-34"></a>!! 使用计算器
|
|
<a id="__codelineno-15-35" name="__codelineno-15-35" href="#__codelineno-15-35"></a>calc = Calculator();
|
|
<a id="__codelineno-15-36" name="__codelineno-15-36" href="#__codelineno-15-36"></a>show(`2 + 3 = `, calc.add(2, 3));
|
|
<a id="__codelineno-15-37" name="__codelineno-15-37" href="#__codelineno-15-37"></a>show(`5 - 2 = `, calc.subtract(5, 2));
|
|
<a id="__codelineno-15-38" name="__codelineno-15-38" href="#__codelineno-15-38"></a>show(`4 * 6 = `, calc.multiply(4, 6));
|
|
<a id="__codelineno-15-39" name="__codelineno-15-39" href="#__codelineno-15-39"></a>show(`10 / 2 = `, calc.divide(10, 2));
|
|
<a id="__codelineno-15-40" name="__codelineno-15-40" href="#__codelineno-15-40"></a>show(`2 ^ 3 = `, calc.power(2, 3));
|
|
</code></pre></div>
|
|
<h3 id="_21">图书管理系统<a class="headerlink" href="#_21" title="Permanent link">¶</a></h3>
|
|
<div class="highlight"><pre><span></span><code><a id="__codelineno-16-1" name="__codelineno-16-1" href="#__codelineno-16-1"></a>!! 图书管理系统
|
|
<a id="__codelineno-16-2" name="__codelineno-16-2" href="#__codelineno-16-2"></a>class Book {
|
|
<a id="__codelineno-16-3" name="__codelineno-16-3" href="#__codelineno-16-3"></a> title = ``;
|
|
<a id="__codelineno-16-4" name="__codelineno-16-4" href="#__codelineno-16-4"></a> author = ``;
|
|
<a id="__codelineno-16-5" name="__codelineno-16-5" href="#__codelineno-16-5"></a> isbn = ``;
|
|
<a id="__codelineno-16-6" name="__codelineno-16-6" href="#__codelineno-16-6"></a> available = true;
|
|
<a id="__codelineno-16-7" name="__codelineno-16-7" href="#__codelineno-16-7"></a>
|
|
<a id="__codelineno-16-8" name="__codelineno-16-8" href="#__codelineno-16-8"></a> def __init__(self, title, author, isbn) {
|
|
<a id="__codelineno-16-9" name="__codelineno-16-9" href="#__codelineno-16-9"></a> self.title = title;
|
|
<a id="__codelineno-16-10" name="__codelineno-16-10" href="#__codelineno-16-10"></a> self.author = author;
|
|
<a id="__codelineno-16-11" name="__codelineno-16-11" href="#__codelineno-16-11"></a> self.isbn = isbn;
|
|
<a id="__codelineno-16-12" name="__codelineno-16-12" href="#__codelineno-16-12"></a> }
|
|
<a id="__codelineno-16-13" name="__codelineno-16-13" href="#__codelineno-16-13"></a>
|
|
<a id="__codelineno-16-14" name="__codelineno-16-14" href="#__codelineno-16-14"></a> def borrow(self) {
|
|
<a id="__codelineno-16-15" name="__codelineno-16-15" href="#__codelineno-16-15"></a> if (self.available) {
|
|
<a id="__codelineno-16-16" name="__codelineno-16-16" href="#__codelineno-16-16"></a> self.available = false;
|
|
<a id="__codelineno-16-17" name="__codelineno-16-17" href="#__codelineno-16-17"></a> return true;
|
|
<a id="__codelineno-16-18" name="__codelineno-16-18" href="#__codelineno-16-18"></a> }
|
|
<a id="__codelineno-16-19" name="__codelineno-16-19" href="#__codelineno-16-19"></a> return false;
|
|
<a id="__codelineno-16-20" name="__codelineno-16-20" href="#__codelineno-16-20"></a> }
|
|
<a id="__codelineno-16-21" name="__codelineno-16-21" href="#__codelineno-16-21"></a>
|
|
<a id="__codelineno-16-22" name="__codelineno-16-22" href="#__codelineno-16-22"></a> def return_book(self) {
|
|
<a id="__codelineno-16-23" name="__codelineno-16-23" href="#__codelineno-16-23"></a> self.available = true;
|
|
<a id="__codelineno-16-24" name="__codelineno-16-24" href="#__codelineno-16-24"></a> }
|
|
<a id="__codelineno-16-25" name="__codelineno-16-25" href="#__codelineno-16-25"></a>
|
|
<a id="__codelineno-16-26" name="__codelineno-16-26" href="#__codelineno-16-26"></a> def get_info(self) {
|
|
<a id="__codelineno-16-27" name="__codelineno-16-27" href="#__codelineno-16-27"></a> status = self.available ? `Available` : `Borrowed`;
|
|
<a id="__codelineno-16-28" name="__codelineno-16-28" href="#__codelineno-16-28"></a> return `Title: ` + self.title + `, Author: ` + self.author + `, ISBN: ` + self.isbn + `, Status: ` + status;
|
|
<a id="__codelineno-16-29" name="__codelineno-16-29" href="#__codelineno-16-29"></a> }
|
|
<a id="__codelineno-16-30" name="__codelineno-16-30" href="#__codelineno-16-30"></a>}
|
|
<a id="__codelineno-16-31" name="__codelineno-16-31" href="#__codelineno-16-31"></a>
|
|
<a id="__codelineno-16-32" name="__codelineno-16-32" href="#__codelineno-16-32"></a>class Library {
|
|
<a id="__codelineno-16-33" name="__codelineno-16-33" href="#__codelineno-16-33"></a> books = arr();
|
|
<a id="__codelineno-16-34" name="__codelineno-16-34" href="#__codelineno-16-34"></a>
|
|
<a id="__codelineno-16-35" name="__codelineno-16-35" href="#__codelineno-16-35"></a> def add_book(self, book) {
|
|
<a id="__codelineno-16-36" name="__codelineno-16-36" href="#__codelineno-16-36"></a> self.books = array.push(self.books, book);
|
|
<a id="__codelineno-16-37" name="__codelineno-16-37" href="#__codelineno-16-37"></a> }
|
|
<a id="__codelineno-16-38" name="__codelineno-16-38" href="#__codelineno-16-38"></a>
|
|
<a id="__codelineno-16-39" name="__codelineno-16-39" href="#__codelineno-16-39"></a> def find_book_by_title(self, title) {
|
|
<a id="__codelineno-16-40" name="__codelineno-16-40" href="#__codelineno-16-40"></a> i = 0;
|
|
<a id="__codelineno-16-41" name="__codelineno-16-41" href="#__codelineno-16-41"></a> while (i < array.length(self.books)) {
|
|
<a id="__codelineno-16-42" name="__codelineno-16-42" href="#__codelineno-16-42"></a> book = self.books[i];
|
|
<a id="__codelineno-16-43" name="__codelineno-16-43" href="#__codelineno-16-43"></a> if (book.title == title) {
|
|
<a id="__codelineno-16-44" name="__codelineno-16-44" href="#__codelineno-16-44"></a> return book;
|
|
<a id="__codelineno-16-45" name="__codelineno-16-45" href="#__codelineno-16-45"></a> }
|
|
<a id="__codelineno-16-46" name="__codelineno-16-46" href="#__codelineno-16-46"></a> i = i + 1;
|
|
<a id="__codelineno-16-47" name="__codelineno-16-47" href="#__codelineno-16-47"></a> }
|
|
<a id="__codelineno-16-48" name="__codelineno-16-48" href="#__codelineno-16-48"></a> return null;
|
|
<a id="__codelineno-16-49" name="__codelineno-16-49" href="#__codelineno-16-49"></a> }
|
|
<a id="__codelineno-16-50" name="__codelineno-16-50" href="#__codelineno-16-50"></a>
|
|
<a id="__codelineno-16-51" name="__codelineno-16-51" href="#__codelineno-16-51"></a> def list_books(self) {
|
|
<a id="__codelineno-16-52" name="__codelineno-16-52" href="#__codelineno-16-52"></a> i = 0;
|
|
<a id="__codelineno-16-53" name="__codelineno-16-53" href="#__codelineno-16-53"></a> while (i < array.length(self.books)) {
|
|
<a id="__codelineno-16-54" name="__codelineno-16-54" href="#__codelineno-16-54"></a> book = self.books[i];
|
|
<a id="__codelineno-16-55" name="__codelineno-16-55" href="#__codelineno-16-55"></a> show(book.get_info());
|
|
<a id="__codelineno-16-56" name="__codelineno-16-56" href="#__codelineno-16-56"></a> i = i + 1;
|
|
<a id="__codelineno-16-57" name="__codelineno-16-57" href="#__codelineno-16-57"></a> }
|
|
<a id="__codelineno-16-58" name="__codelineno-16-58" href="#__codelineno-16-58"></a> }
|
|
<a id="__codelineno-16-59" name="__codelineno-16-59" href="#__codelineno-16-59"></a>}
|
|
<a id="__codelineno-16-60" name="__codelineno-16-60" href="#__codelineno-16-60"></a>
|
|
<a id="__codelineno-16-61" name="__codelineno-16-61" href="#__codelineno-16-61"></a>!! 使用图书管理系统
|
|
<a id="__codelineno-16-62" name="__codelineno-16-62" href="#__codelineno-16-62"></a>library = Library();
|
|
<a id="__codelineno-16-63" name="__codelineno-16-63" href="#__codelineno-16-63"></a>
|
|
<a id="__codelineno-16-64" name="__codelineno-16-64" href="#__codelineno-16-64"></a>!! 添加图书
|
|
<a id="__codelineno-16-65" name="__codelineno-16-65" href="#__codelineno-16-65"></a>library.add_book(Book(`The Great Gatsby`, `F. Scott Fitzgerald`, `978-0743273565`));
|
|
<a id="__codelineno-16-66" name="__codelineno-16-66" href="#__codelineno-16-66"></a>library.add_book(Book(`To Kill a Mockingbird`, `Harper Lee`, `978-0061120084`));
|
|
<a id="__codelineno-16-67" name="__codelineno-16-67" href="#__codelineno-16-67"></a>library.add_book(Book(`1984`, `George Orwell`, `978-0451524935`));
|
|
<a id="__codelineno-16-68" name="__codelineno-16-68" href="#__codelineno-16-68"></a>
|
|
<a id="__codelineno-16-69" name="__codelineno-16-69" href="#__codelineno-16-69"></a>!! 列出所有图书
|
|
<a id="__codelineno-16-70" name="__codelineno-16-70" href="#__codelineno-16-70"></a>show(`All books:`);
|
|
<a id="__codelineno-16-71" name="__codelineno-16-71" href="#__codelineno-16-71"></a>library.list_books();
|
|
<a id="__codelineno-16-72" name="__codelineno-16-72" href="#__codelineno-16-72"></a>
|
|
<a id="__codelineno-16-73" name="__codelineno-16-73" href="#__codelineno-16-73"></a>!! 借阅图书
|
|
<a id="__codelineno-16-74" name="__codelineno-16-74" href="#__codelineno-16-74"></a>book = library.find_book_by_title(`1984`);
|
|
<a id="__codelineno-16-75" name="__codelineno-16-75" href="#__codelineno-16-75"></a>if (book) {
|
|
<a id="__codelineno-16-76" name="__codelineno-16-76" href="#__codelineno-16-76"></a> if (book.borrow()) {
|
|
<a id="__codelineno-16-77" name="__codelineno-16-77" href="#__codelineno-16-77"></a> show(`Successfully borrowed: `, book.title);
|
|
<a id="__codelineno-16-78" name="__codelineno-16-78" href="#__codelineno-16-78"></a> } else {
|
|
<a id="__codelineno-16-79" name="__codelineno-16-79" href="#__codelineno-16-79"></a> show(`Book not available: `, book.title);
|
|
<a id="__codelineno-16-80" name="__codelineno-16-80" href="#__codelineno-16-80"></a> }
|
|
<a id="__codelineno-16-81" name="__codelineno-16-81" href="#__codelineno-16-81"></a>}
|
|
<a id="__codelineno-16-82" name="__codelineno-16-82" href="#__codelineno-16-82"></a>
|
|
<a id="__codelineno-16-83" name="__codelineno-16-83" href="#__codelineno-16-83"></a>!! 再次列出图书
|
|
<a id="__codelineno-16-84" name="__codelineno-16-84" href="#__codelineno-16-84"></a>show(`\nBooks after borrowing:`);
|
|
<a id="__codelineno-16-85" name="__codelineno-16-85" href="#__codelineno-16-85"></a>library.list_books();
|
|
</code></pre></div>
|
|
<h2 id="_22">注意事项<a class="headerlink" href="#_22" title="Permanent link">¶</a></h2>
|
|
<ol>
|
|
<li><strong>函数命名</strong>:函数名应该使用小写字母,多个单词之间使用下划线</li>
|
|
<li><strong>类命名</strong>:类名应该使用驼峰命名法(首字母大写)</li>
|
|
<li><strong>方法命名</strong>:方法名应该使用小写字母,多个单词之间使用下划线</li>
|
|
<li><strong>参数传递</strong>:参数按值传递,对于数组等复杂类型,传递的是引用</li>
|
|
<li><strong>self 参数</strong>:类的方法第一个参数必须是 <code>self</code>,表示实例本身</li>
|
|
<li><strong>super()</strong>:在继承中,使用 <code>super()</code> 调用父类的方法</li>
|
|
</ol>
|
|
<h2 id="_23">练习<a class="headerlink" href="#_23" title="Permanent link">¶</a></h2>
|
|
<ol>
|
|
<li>编写一个函数,计算两个数的最大公约数</li>
|
|
<li>编写一个函数,判断一个字符串是否为回文</li>
|
|
<li>编写一个类,表示一个银行账户,包含存款、取款和查询余额的方法</li>
|
|
<li>编写一个类,表示一个矩形,包含计算面积和周长的方法</li>
|
|
</ol>
|
|
<h2 id="_24">小结<a class="headerlink" href="#_24" title="Permanent link">¶</a></h2>
|
|
<p>本教程介绍了 Oraset 编程语言的函数和类,包括:</p>
|
|
<ul>
|
|
<li>函数定义和调用</li>
|
|
<li>函数参数和返回值</li>
|
|
<li>递归函数和匿名函数</li>
|
|
<li>类的定义和实例化</li>
|
|
<li>类的方法和属性</li>
|
|
<li>继承和静态方法</li>
|
|
<li>综合示例:计算器类和图书管理系统</li>
|
|
</ul>
|
|
<p>掌握这些概念后,你可以编写更模块化、更可维护的 Oraset 程序。</p>
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
</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> |