移动Web开发实战内容要点!!!

移动web开发

目录

移动web开发

第一章、Web开发标准与网页网站制作介绍

1.1Web开发标准

1.2网页基本构成元素

第二章、Web开发技术基础

2.1HTML的主要特点:

2.2HTML基本知识

2.3CSS样式

2.4JavaScript

第三章、打造移动Web应用程序

3.1为什么Android会成为主流操作系统

3.2测试应用程序

第四章、HTML5在移动设备中

4.1HTML5的主要特性

4.2自动检测是否语法正确

第五章、使用表单元素

5.1表单元素类型

第六章、音频和视频应用

6.1使用video标记

6.2处理音频audio支持的三种格式:

6.3检测浏览器是否支持媒体类型:

第七章、canvas会图详解

7.1HTMLDOM Canvas对象

7.2绘制一个圆:

第八章、数据存储

8.1Web Storage存储方式

第九章、文件操作处理

9.1选择单个或者多个文件

第十章、jQuery mobile基础

10.1什么是jQuery

10.2jquery库包含一下特性:

10.3如何获取jQuery Mobile?

第十一章、页面数据离线处理

11.1manifest文件详解:

第十二章、使用PhoneGap框架

12.1PhoneGap的优缺点:


第一章、Web开发标准与网页网站制作介绍

1.1Web开发标准

网页主要由三部分组成:结构(Structure)、表现(Presention)、行为(Behaveior)。

HTML是hyper text markup language(超文本标记语言)的缩写。

1.2网页基本构成元素

  1. 文本:文本是网页中的最重要的信息,可以通过字体、大小、颜色、底纹、边框等来设置文本的属性。在网页概念中的文本是指单纯的文字,而并非图片中的文字。
  2. 图像:图像是页面中最为重要的构成部分。在网页中只有加入图像后才使页面达到完美的显示效果,可见图像在网页中的重要性。在网页设计中用到的图片一般为JPG和GIF格式。
  3. 超链接:超链接是网站的灵魂,能够指向另一个网页或相同网页上的不同位置,这个目的端通常是另一个网页,但也可以是一幅图片、一个电子邮件地址、一个文件甚至一个程序。超链接广泛地存在于网页的图片和文字中,提供与图片和文字相关内容的链接,在超链接上单击鼠标左键,即可链接到相应地址(URL)的网页。有链接的地方,鼠标指上时会变成小手形状。
  4. flash动画:Flash一经推出后便迅速成为最首要的Web动画形式之一。Flash利用其自身所具有的关键帧补间、运动路径、动画蒙版、形状变形和洋葱皮等动画特性,不仅可以建立Flash电影,还可以将动画输出为不同文件格式的播放文件。
  5. 表格:表格是传统网页排版的灵魂,即使CSS标准推出后也能够继续发挥不可限量的作用。通过表格可以精确地控制各网页元素在网页中的位置。
  6. 表单:表单是用来收集站点访问者信息的域集,是网页中站点服务器处理的一组数据输入域。它是非常重要的通过网页在与服务器之间传递信息的途径,表单网页可以用来获取浏览者的意见和建议,以实现浏览者与站点之间的互动。
  7. 框架:框架是网页中一种重要的组织形式,它能够将相互关联的多个网页内容组织在一个浏览器窗口中显示。框架是一个由框架网页所定义的浏览器初见窗区域,它通过框架网页实现。

网站由网页组成。

第二章、Web开发技术基础

2.1HTML的主要特点:

  1. HTML表示的是超文本标记语言;
  2. HTML文件是一个包含标记的文本文件;
  3. HTML的标记用于在浏览器中如何显示这个页面;
  4. HTML文件必须是具有htm和HTML格式扩展名;
  5. HTML文件可以可以使用一个简单的文本编辑器创建。

2.2HTML基本知识

HTML语言文档包含两种信息:一是页面本上的文本;二是表示页面元素、结构、格式和其他超文本链接的HTML标记;

HTML元素主要由:标记、元素名称、属性组成。

2.3CSS样式

CSS收cascading stylesheet层叠样式表,主要功能是定义网页外观的显示样式。

CSS的特点:

  1. CSS语言是一种标记语言,无须需编译,可以直接由浏览器执行;
  2. 在标准网页设计中CSS网页内容的表现;
  3. CSS文件可以说是一个文本文件,它包含了一些CSS标记;
  4. CSS文件必须使用CSS作为文件名后缀。

2.4JavaScript

JavaScript是轻量级语言。

JavaScript语言特点:

  1. 增加网页互动性;
  2. 能够使用规律性、重复的HTML文本简化,减少下载时间;
  3. 及时响应用户的操作,对提交的表单及时的检查,无须浪费时间由CGI验证。

第三章、打造移动Web应用程序

3.1为什么Android会成为主流操作系统

开源、联盟、技术(简要概述即可)。

3.2测试应用程序

有以下三种方法在自己没有的设备上进行测试

  1. 购买或者租聘设备;
  2. 请求他人帮助;
  3. 使用模拟。

第四章、HTML5在移动设备中

4.1HTML5的主要特性

  1. 用于会话的canvas元素;
  2. 用于媒介回放的video和audio元素;
  3. 对本地离线存储的更好的支持;
  4. 增加了新的特殊内容元素:footer、header、nav、section、article;
  5. 新的表单控件:date、time、email、URL、search、calendar;

HTML5不仅可以改进面向桌面浏览器的网站,他的一些特性更是为移动设备量身打造。

4.2自动检测是否语法正确

在HTML5页面中创建两个输入框元素;

第一个元素将“spellcheck”属性设置为“true”,表示需要语法检测,设置为“false”为不需要检测。

<!DOCTYPE html>
<html>
<head>
<meta charset="utf-8" />
<title>spellcheck属性的使用</title>
<link href="css.css" rel="stylesheet" type="text/css">
</head>
<body>
 <h5>输入框中语法检测属性</h5>
 <p>需要检测<br/>
   <textarea spellcheck="true" 
             class="inputtxt"></textarea>
 </p>
 <p>不需要检测<br/>
   <textarea spellcheck="false" 
             class="inputtxt"></textarea>
 </p>
</body>
</html>

第五章、使用表单元素

5.1表单元素类型

HTML5提供了多个新的表单输入类型,这些新类型为我们提供了更好的输入控制和验证功能。在HTML5标记语言中,包含了如下所示的输入类型。

  1. email
  2. url
  3. number
  4. range
  5. Date pickers(date,month,week,time,datetime,datetime-local)
  6. search
  7. color

其中email、URL、number具有选择属性;number、range、Date pickers具有max、min、step属性。

Date Pickers(数据检出器)

第六章、音频和视频应用

6.1使用video标记

在HTML5标记语言中,通过新增标记video可以在网页中播放视频,并控制视频播放。当前,video标记支持以下三种视频格式:

  1. Ogg:带有Theora视频编码和Vorbis音频编码的Ogg文件。
  2. MPEG4:带有H.264视频编码和AAC音频编码的MPEG4文件。
  3. WebM:带有VP8视频编码和Vorbis音频编码的WebM文件。

在HTML5标记语言中,使用video标记的格式如下所示。

<videosrc="movie.ogg"controls="controls"> </video>

control:提供添加播放、暂停和音量控件。

6.2处理音频audio支持的三种格式:

Ogg Vorbis、MP3、wav.

control:提供添加播放、暂停和音量控件。

6.3检测浏览器是否支持媒体类型:

在HTML5标记语言中,因为浏览器对多媒体元素加载媒体文件类型支持的不同,所以在使用多媒体元素加载文件前需要检测当前浏览器是否支持媒体文件类型。检测的方法是通过调用多媒体元素的canPlayType(type)方法实现,其中参数“type”表示需要浏览器检测的类型,该类型与媒体文件的IMIME类型一致;通过多媒体元素的canPlayType(type)方法,可以返回以下三个值:

  1. 空字符:表示浏览器不支持该类型的媒体文件。
  2. maybe:表示浏览器可能支持该类型的媒体文件。
  3. probably:表示浏览器支持该类型的媒体文件。
<!DOCTYPE html>
<html>
<head>
<meta charset="utf-8" />
<title>检测浏览器支持媒体类型</title>
<link href="css.css" rel="stylesheet" type="text/css">
<script type="text/javascript" language="jscript" src="js4.js"/>
</script>
</head>
<body>
<div>
  <video id="vdoMain" src="123.ogg"
         width="360px" height="220px">
         你的浏览器不支持视频
  </video>
  <p id="pTool">
     <span onClick="v_chkType();">检测</span>
  </p>
  <span id="spnResult"></span>
<div>
</body>
</html>
// JavaScript Document
function $$(id) {
    return document.getElementById(id);
}
var i = 0,j = 0,k = 0;
function v_chkType() {
    var strHTML="";
    var arrType = new Array('audio/mpeg;', 'audio/mov;', 
    'audio/mp4;codecs="mp4a.40.2"', 'audio/ogg;codecs="vorbis"',
    'video/webm;codecs="vp8,vorbis"', 'audio/wav;codecs="1"');
    for (intI = 0; intI < arrType.length; intI++) {
        switch ($$("vdoMain").canPlayType(arrType[intI])) {
        case "":
            i = i + 1;
            break;
        case "maybe":
            j = j + 1;
            break;
        case "probably":
            k = k + 1;
            break;
        }
    }
    strHTML+="空字符:"+i+"<br>";
    strHTML+="maybe:"+j+"<br>";
    strHTML+="probably:"+k;
    $$("spnResult").style.display="block";
    $$("spnResult").innerHTML=strHTML;
}

第七章、canvas会图详解

7.1HTMLDOM Canvas对象

在HTML5标记语言中,Canvas对象表示一个HTML画布元素,它没有自己的行为,但是定义了一个API支持脚本化客户端绘图操作。

<!DOCTYPE HTML>
<html>
<head>
<style type="text/css"> 
body
{
font-size:70%;
font-family:verdana,helvetica,arial,sans-serif;
}
</style>

<script type="text/javascript"> 
function cnvs_getCoordinates(e)
{
x=e.clientX;
y=e.clientY;
document.getElementById("xycoordinates").innerHTML="Coordinates: (" + x + "," + y + ")";
}
 
function cnvs_clearCoordinates()
{
document.getElementById("xycoordinates").innerHTML="";
}
</script>
</head>

<body style="margin:0px;">

<p>�������������ľ�����</p>

<div id="coordiv" style="float:left;width:199px;height:99px;border:1px solid #c3c3c3" onmousemove="cnvs_getCoordinates(event)" onmouseout="cnvs_clearCoordinates()"></div>
<br />
<br />
<br />
<div id="xycoordinates"></div>
 
 
</body>
</html>
  • e.clientX:表示鼠标指针相对于浏览器窗口可视区的X坐标。这个坐标以窗口的左上角为原点(0, 0),向右为正X轴。
  • e.clientY:表示鼠标指针相对于浏览器窗口可视区的Y坐标。同样地,这个坐标以窗口的左上角为原点(0, 0),向下为正Y轴。

7.2绘制一个圆:

<!DOCTYPE HTML>
<html>
<body>

<canvas id="myCanvas" width="200" height="100" style="border:1px solid #c3c3c3;">
Your browser does not support the canvas element.
</canvas>

<script type="text/javascript">

var c=document.getElementById("myCanvas");
var cxt=c.getContext("2d");
cxt.fillStyle="#FF0000";
cxt.beginPath();
cxt.arc(70,18,15,0,Math.PI*2,true);
//true为逆时针,false为顺时针
cxt.closePath();
cxt.fill();

</script>

</body>
</html>

在HTML5的Canvas API中,cxt.arc(x, y, radius, startAngle, endAngle, anticlockwise) 方法用于绘制一个圆或圆弧。对于给定的代码 cxt.arc(70,18,15,0,Math.PI*2,true);,我们可以分解其各属性的意义:

cxt:

这通常是一个CanvasRenderingContext2D对象,表示2D渲染上下文,它提供了在元素上绘图的方法和属性。

arc(x, y, radius, startAngle, endAngle, anticlockwise):

arc 方法用于绘制一个圆或圆弧。

70, 18:

x 和 y 坐标,定义了圆弧的圆心位置。在这个例子中,圆心位于坐标 (70, 18)。

15:

radius 表示圆弧的半径。在这个例子中,半径是 15。

0, Math.PI*2:

startAngle 和 endAngle 表示圆弧的起始和结束角度,以弧度为单位。

0 表示从x轴正方向开始(也就是3点钟方向)。

Math.PI2 等于 2π,表示一整圈。所以,0, Math.PI2 表示绘制一个完整的圆。

true:

anticlockwise 是一个布尔值,指定圆弧的绘制方向。

如果为 true,则圆弧按逆时针方向绘制。

如果为 false 或未指定,则圆弧按顺时针方向绘制。

在这个例子中,cxt.arc(70,18,15,0,Math.PI*2,true); 将绘制一个以 (70, 18) 为圆心,半径为 15 的完整圆,绘制方向为逆时针。但请注意,要实际看到这个圆,你还需要调用 cxt.stroke() 或 cxt.fill() 方法来描边或填充这个圆。

第八章、数据存储

8.1Web Storage存储方式

sessionStorage

localStorage、

从字面意思就可以很清楚的看出来,sessionStorage将数据保存在session中,浏览器关闭也就没了;而localStorage则一直将数据保存在客户端本地,除非主动删除数据,否则数据是永远不会过期的;不管是sessionStorage,还是localStorage,可使用的API都相同,

生成随机数:

<!DOCTYPE html>
<html>
<head>
<meta charset="utf-8" />
<title>表单记录</title>
<link href="css.css" rel="stylesheet" type="text/css">
<script type="text/javascript" language="jscript" src="js4.js"/>
</script>
</head>
<body onLoad="Init_Data();">
   <p id="pStatus"></p>
   <fieldset>
      <legend>新增学生资料</legend>
      <span class="spanl">
      学号:<input type="text" readonly="true" id="txtStuID" 
                  class="inputtxt" size="10"><br>
      姓名:<input type="text" id="txtName" class="inputtxt" 
                  size="15">
      </span>
      <span class="spanr">
      性别:<select id="selSex">
              <option value="男">男</option>
              <option value="女">女</option>
            </select><br> 
      总分:<input type="text" id="txtScore" class="inputtxt" 
                  size="8">
      </span>
      <p class="btn">  
      <input id="btnAdd" type="button" value="提交" 
             class="inputbtn" onClick="btnAdd_Click();">
      </p>
    </fieldset>
</body>
</html>
function $$(id) {
    return document.getElementById(id);
}
var db;
//点击“提交”按钮时调用
function btnAdd_Click() {
    //创建/打开数据库
    db = openDatabase('Student', '1.0', 'StuManage', 2 * 1024 * 1024);
    if (db) {
        var strSQL = "insert into StuInfo values";
        strSQL += "(?,?,?,?)";
        db.transaction(function(tx) {
            tx.executeSql(strSQL,[
                $$("txtStuID").value,$$("txtName").value,
                $$("selSex").value,$$("txtScore").value
            ],
            function(){
                $$("txtName").value="";
                $$("txtScore").value="";
                Status_Handle("成功增加1条记录!")
            },
            function(tx,ex){
                Status_Handle(ex.message)
            })
        })
    }
}
//自定义显示执行过程中状态的函数
function Status_Handle(message) {
    $$("pStatus").style.display = "block";
    $$("pStatus").innerHTML = message;
}
//生成指定长度的随机数
function RetRndNum(n) {
    var strRnd = "";
    for (var intI = 0; intI < n; intI++) {
        strRnd += Math.floor(Math.random() * 10);
    }
    return strRnd;
}
//初始化数据
function Init_Data(){
    $$("txtStuID").value=RetRndNum(7);
}

第九章、文件操作处理

9.1选择单个或者多个文件

为元素添加multiple属性;

将属性multiple的值设置为true。

FilerReader接口:

第十章、jQuery mobile基础

10.1什么是jQuery

jquery是一款优秀的JavaScript框架Dave Methvin率领团队进行开发。

10.2jquery库包含一下特性:

  1. HTML元素选取
  2. HTML元素操作
  3. CSS操作
  4. HTML事件函数
  5. JavaScript特效和动画
  6. HTMLDOM遍历和修改
  7. AJAX
  8. Utilities

10.3如何获取jQuery Mobile?

第十一章、页面数据离线处理

11.1manifest文件详解:

在移动Web页面应用中,为了能在离线状态下继续访问Web应用,需要将缓存文件的URL写入manifest文件中。当浏览器与服务器建立联系后,浏览器就会根据manifest文件所列的缓存清单,将相应的资源文件缓存在本地。

manifest文件可以实现如下管理功能:

  1. 需要保存哪些文件
  2. 不需要保存哪些文件
  3. 在线与离线时需要调用哪些文件

第十二章、使用PhoneGap框架

12.1PhoneGap的优缺点:

喜欢的话一键三连吧^_^  ^_^!!! 

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:/a/747643.html

如若内容造成侵权/违法违规/事实不符,请联系我们进行投诉反馈qq邮箱809451989@qq.com,一经查实,立即删除!

相关文章

AI-智能体基础设施

个性化记忆需要世界模型来协助构建 业界有一个精简的Agent表达公示&#xff0c;即&#xff1a;Agent大模型&#xff08;LLM&#xff09;记忆&#xff08;Memory&#xff09;主动规划&#xff08;Planning&#xff09;工具使用&#xff08;Tool Use&#xff09;。基于该公式&am…

植物大战僵尸杂交版v2.1最新直装版,苹果+安卓+PC+防闪退工具+修改工具+高清工具+通关存档整合包更新

今天我要和各位聊聊一款让全网疯狂的游戏——《植物大战僵尸杂交版》。这可不是简单的游戏&#xff0c;它可是让B站的UP主“潜艇伟伟迷”一夜成名的大作&#xff0c;让无数玩家为之疯狂的魔改神作&#xff01; 记得2009年&#xff0c;《植物大战僵尸》横空出世&#xff0c;那时…

单片机学习记录

一&#xff0c;单片机及开发板介绍 1&#xff0c;基本介绍 单片机&#xff0c;英文Micro Controller Unit&#xff0c;简称MCU内部集成了CPU、RAM、ROM、定时器、中断系统、通讯接口等一系列电脑的常用硬件功能单片机的任务是信息采集(依靠传感器)、处理(依靠CPU)和硬件设备(…

深度相机辅助导航避障(三):地面点云滤除

前面的章节介绍了坐标变换,以及如何设置深度相机的坐标变换。那就可以很直观从机器人的坐标系对深度相机扫描到的障碍物点云进行处理。 在实际应用中,机器人正确估计周围地形,对于道路的可通过性、路径规划和障碍物检测等方面都很重要。那么在获取深度相机点云数据后就得准…

Qt入门小项目 | 实现腾讯会议登陆界面

文章目录 一、手写代码实现腾讯会议登陆界面二、使用UI设计器实现腾讯会议登陆界面 一、手写代码实现腾讯会议登陆界面 使用Qt控件与布局实现腾讯会议登陆界面。 示例&#xff1a; loginInCode.h&#xff1a; #pragma once#include <QtWidgets/QDialog> #include <QV…

安装zabbix时报错Could not resolve host: mirrors.huaweicloud.com;Unknown error解决办法

目录 1、问题原因 2、解决办法 3、知识拓展 DNS的区别 DNS配置文件解析 域名解析过程 4、书籍推荐 当安装Zabbix server&#xff0c;Web前端&#xff0c;agent时出现&#xff1a; [rootsc-zabbix-server ~]# yum install zabbix-server-mysql zabbix-agent安装过程中会出…

Token详解

一&#xff1a;Token是什么 token是具有访问权限的令牌&#xff0c;其本质是一串字符串。 如何创建token 用户在登录页面&#xff0c;输入账号和密码能够成功登录后&#xff1b;由后端签发并返回 token作用 用来判断用户当前的登录状态&#xff0c;根据当前用户登录状态给…

OceanBase 4.X-2F1A 仲裁高可用方案初探

作者&#xff1a;郑增权&#xff0c;爱可生 DBA 团队成员&#xff0c;OceanBase 和 MySQL 数据库技术爱好者。 爱可生开源社区出品&#xff0c;原创内容未经授权不得随意使用&#xff0c;转载请联系小编并注明来源。 本文约 1500 字&#xff0c;预计阅读需要 5 分钟。 背景 对…

CS与MSF的权限互相传递/mimikatz抓取windows 2012明文密码

目录 CS和MSF的简单介绍 Metasploit Cobalt Strike 1、CS权限传递到MSF 2、MSF权限传递到CS 3、使用mimikatz抓取明文密码 通过修改注册表用户重新登录后抓取明文密码 今天的任务是两个 一个是CS与MSF的权限互相传递一个是抓取windows2012的明文密码 那就分别来完成 …

printf趣味代码,打印图案

文章目录 1.打印佛祖2.打印猫猫 (闪烁效果) 1.打印佛祖 #include <stdio.h>void budda_bless(){printf("///\n\ // _ooOoo_ //\n\ // o8888888o //\n\ // …

SpringBoot全局配置文件里的配置项

SpringBoot核心配置文件里可以配置的配置项&#xff0c;非常非常多&#xff01;Spring Boot Reference Guide靠后的附件里看到所有配置项和说明. 有关配置项&#xff0c;我们除了知道在哪里查询具体配置项以外&#xff0c;我们还应该知道一些细节知识点: ① SpringBoot给我们…

2024广东省职业技能大赛云计算赛项实战——集群部署GitLab

集群部署GitLab 前言 题目是这样的&#xff1a; 在Kubernetes集群中新建命名空间gitlab-ci&#xff0c;将GitLab部署到该命名空间下&#xff0c;Deployment和Service名称均为gitlab&#xff0c;以NodePort方式将80端口对外暴露为30880&#xff0c;设置GitLab服务root用户的密…

Python 高级编程:文件操作与错误处理

在前几篇文章中&#xff0c;我们介绍了Python的基本语法、函数和模块以及面向对象编程。这些知识对于大部分日常编程问题已经足够&#xff0c;但对于需要分析大数据的人来说&#xff0c;这些还不够。本章将介绍Python的文件操作以及错误处理与调试。 目录 文件操作读文件写文…

制造业采购堡垒机的四大必要性看这里!

制造业包括的行业广泛&#xff0c;与大家的生活息息相关&#xff0c;例如食品制造业、汽车制造业、纺织业、服装制造业等等。但大家对于制造业不是很了解&#xff0c;不知道制造业也是需要采购堡垒机的&#xff0c;今天我们就来聊聊制造业采购堡垒机的必要性。 制造业采购堡垒机…

node mySql 实现数据的导入导出,以及导入批量插入的sql语句

node 实现导出, 在导出excel中包含图片&#xff08;附件&#xff09; node 实现导出, 在导出excel中包含图片&#xff08;附件&#xff09;-CSDN博客https://blog.csdn.net/snows_l/article/details/139999392?spm1001.2014.3001.5502 一、效果 如图&#xff1a; 二、导入 …

AI商品图生成企业定制服务,广州这家公司走在了行业前头

&#x1f680; 最强AI绘图设计企业定制服务出炉 —— 触站A&#xff0c;智能艺术的革新者 &#x1f31f; &#x1f3a8; 触站AI&#xff0c;绘制未来的智能艺术 &#x1f3a8;在AI技术的浪潮中&#xff0c;触站AI以其前沿技术&#xff0c;为艺术与设计领域注入了新的活力。 &a…

【SkiaSharp绘图11】SKCanvas属性详解

文章目录 SKCanvas构造SKCanvas构造光栅 Surface构造GPU Surface构造PDF文档构造XPS文档构造SVG文档SKNoDrawCanvas 变换剪裁和状态构造函数相关属性DeviceClipBounds获取裁切边界(设备坐标系)ClipRect修改裁切区域IsClipEmpty当前裁切区域是否为空IsClipRect裁切区域是否为矩形…

C3P0数据库连接池

目录 一&#xff1a;连接池介绍 1.1连接池解决的问题 2.常用的数据库连接池 二&#xff1a;c3p0介绍 2.1C3P0介绍&#xff1a; 2.2C3P0快速入门 1.常用参数说明 2.API介绍 3.使用步骤 1.导入jar包c3p0-0.9.1.2.jar 2.编写c3p0-config.xml配置文件&#xff0c;配置对…

深入探索:大型语言模型消除幻觉的解决之道

随着人工智能技术的飞速发展&#xff0c;大型语言模型&#xff08;LLMs&#xff09;已经成为自然语言处理领域的明星。它们以其庞大的知识库和生成连贯、上下文相关文本的能力&#xff0c;极大地推动了研究、工业和社会的进步。然而&#xff0c;这些模型在生成文本时可能会产生…

27. 高级特性(下)

目录 一、为了类型安全和抽象而使用 newtype 模式二、使用类型别名创建类型同义词2.1 使用type关键赋予现有类型一个别名2.2 减少重复2.3 与Result<T, E>结合使用2.4 从不返回的 never type 三、高级函数和闭包3.1 函数指针3.2 返回闭包 四、宏4.1 宏和函数的区别4.2 mac…