Google HTML/CSS 风格指南

1、Background 背景

本文档定义了 HTML 和 CSS 的格式和样式规则。它旨在 改善协作、代码质量并启用支持基础设施。 它适用于使用 HTML 和 CSS 的原始工作文件,包括 GSS 文件。 工具可以自由地混淆、缩小和编译,只要通用代码 保持质量。

2、常规

2.1、一般样式规则

2.1.1、Protocol 协议

尽可能对嵌入式资源使用 HTTPS。除非相应的文件无法通过HTTPS获取,否则始终使用HTTPS(https:)来加载图像和其他媒体文件、样式表和脚本。

<!-- Not recommended: omits the protocol -->
<script src="//ajax.googleapis.com/ajax/libs/jquery/3.4.0/jquery.min.js"></script><!-- Not recommended: uses HTTP -->
<script src="http://ajax.googleapis.com/ajax/libs/jquery/3.4.0/jquery.min.js"></script>
<!-- Recommended -->
<script src="https://ajax.googleapis.com/ajax/libs/jquery/3.4.0/jquery.min.js"></script>
/* Not recommended: omits the protocol */
@import '//fonts.googleapis.com/css?family=Open+Sans';/* Not recommended: uses HTTP */
@import 'http://fonts.googleapis.com/css?family=Open+Sans';
/* Recommended */
@import 'https://fonts.googleapis.com/css?family=Open+Sans';

2.2、常规格式规则

2.2.1、缩进

一次缩进 2 个空格。不要使用制表符或混合使用制表符和空格进行缩进。

<style>.example {color: blue;}
</style>
<ul><li>Fantastic</li><li>Great</li>
</ul>
2.2.2、Capitalization

仅使用小写字母。属性值(除非 text/CDATA所有代码都必须是小写的:这适用于 HTML 元素名称、属性、 CSS 选择器、属性和属性 值(字符串除外)。

<!-- Not recommended -->
<A HREF="/">Home</A>
<!-- Recommended -->
<img src="google.png" alt="Google">
/* Not recommended */
color: #E5E5E5;
/* Recommended */
color: #e5e5e5;
2.2.3、尾随空格

删除尾随的空格。尾随空格是不必要的,并且会使差异复杂化。

<!-- Not recommended -->
<p>What?_
<!-- Recommended -->
<p>Yes please.

2.3、通用 Meta 规则

2.3.1、Encoding 编码

使用 UTF-8(无 BOM)。请确保您的编辑器使用 UTF-8 作为字符编码,并且不使用字节顺序标记。

通过 <meta 在 HTML 模板和文档中指定编码<meta charset="utf-8">。不要指定样式表的编码,因为这些代码假定 UTF-8 格式。

2.3.2、Comments

尽可能根据需要解释代码。使用注释来解释代码:它涵盖了什么,它有什么目的, 为什么使用或首选相应的解决方案?(此项目是可选的,因为它不被视为始终的现实期望 需要完整记录的代码。对于 HTML 和 CSS 代码,里程可能会有很大差异,并且 取决于项目的复杂程度。

2.3.3、Action Items

使用 TODO 标记待办事项和操作项。仅使用关键字 TODO@@ 突出显示待办事项,而不是使用其他常见格式,例如 :TODO(contact)在括号中附加联系人(用户名或邮件列表),格式如下在冒号后附加操作项TODO: action item

{# TODO(john.doe): revisit centering #}
<center>Test</center>
<!-- TODO: remove optional tags -->
<ul><li>Apples</li><li>Oranges</li>
</ul>

3、HTML

3.1、HTML 样式规则

3.1.1、Document Type 文档类型

使用 HTML5。HTML5(HTML 语法)是所有 HTML 文档的首选:<!DOCTYPE html>

建议使用HTML(作为text/html)。不要使用XHTML。XHTML(作为application/xhtml+xml)缺乏浏览器和基础设施支持,并且其优化空间比HTML更小。

3.1.2、HTML 有效性

尽可能使用有效的 HTML。使用有效的 HTML 代码,除非由于其他方式无法实现而无法实现 有关文件大小的性能目标。使用 W3C HTML 验证程序 进行测试。

使用有效的 HTML 是一个可衡量的基准质量属性,有助于了解技术要求和约束,并确保适当的 HTML 用法。

<!-- Not recommended -->
<title>Test</title>
<article>This is only a test.</article>
<!-- Recommended -->
<!DOCTYPE html>
<meta charset="utf-8">
<title>Test</title>
<article>This is only a test.</article>
3.1.3、语义

根据其目的使用 HTML。使用元素(有时错误地称为“标签”)的本来用途。例如,使用标题元素来创建标题,使用 p 元素来创建段落,使用 a 元素来创建锚点等。

出于可访问性、重用性和代码效率方面的考虑,根据 HTML 的目的来使用 HTML 很重要。

<!-- Not recommended -->
<div onclick="goToRecommendations();">All recommendations</div><!-- Recommended -->
<a href="recommendations/">All recommendations</a>
3.1.4、多媒体回退

为多媒体提供替代内容。对于多媒体,例如图像、视频、通过canvas文本 (alt的动画对象,请确保 以提供替代访问。对于图像,这意味着使用有意义的替代方案 ) 以及视频和音频脚本和字幕(如果可用)。

提供替代内容对于无障碍性至关重要:盲用户在没有 @alt 的情况下几乎无法判断图像的内容,而其他用户也可能无法理解视频或音频的内容。

对于其 alt 属性将引入冗余信息的图像,以及您无法立即使用CSS的仅具有装饰性目的的图像,请不使用替代文本,如 alt=""。

<!-- Not recommended -->
<img src="spreadsheet.png"><!-- Recommended -->
<img src="spreadsheet.png" alt="Spreadsheet screenshot.">
3.1.5、关注点分离

将结构与呈现与行为分开。严格保持结构(标记)、表示(样式)和行为 (脚本)分开,并尝试将三者之间的交互保持在 绝对最小值。也就是说,确保文档和模板仅包含 HTML 和 HTML 仅服务于结构目的。将所有展示性的东西都变成风格 工作表,以及所有行为到脚本中。此外,通过链接尽可能少的样式来保持接触面积尽可能小 尽可能从文档和模板中获取工作表和脚本。将结构与表现从行为分开对于 维护原因。更改 HTML 文档和 模板而不是更新样式表和脚本。

<!-- Not recommended -->
<!DOCTYPE html>
<title>HTML sucks</title>
<link rel="stylesheet" href="base.css" media="screen">
<link rel="stylesheet" href="grid.css" media="screen">
<link rel="stylesheet" href="print.css" media="print">
<h1 style="font-size: 1em;">HTML sucks</h1>
<p>I’ve read about this on a few sites but now I’m sure:<u>HTML is stupid!!1</u>
<center>I can’t believe there’s no way to control the styling ofmy website without doing everything all over again!</center><!-- Recommended -->
<!DOCTYPE html>
<title>My first CSS-only redesign</title>
<link rel="stylesheet" href="default.css">
<h1>My first CSS-only redesign</h1>
<p>I’ve read about this on a few sites but today I’m actuallydoing it: separating concerns and avoiding anything in the HTML ofmy website that is presentational.
<p>It’s awesome!
3.1.6、实体引用

不要使用实体引用。在文件、编辑器和团队之间使用相同的编码(UTF-8)时,无需使用实体引用,如:&mdash;&rdquo;, 或者 &#x263a。唯一的例外适用于在 HTML 中具有特殊含义的字符(如 <和 & ) 以及控制或“不可见”字符(如无间断空格)。

<!-- Not recommended -->
The currency symbol for the Euro is &ldquo;&eur;&rdquo;.<!-- Recommended -->
The currency symbol for the Euro is “€”.
3.1.7、可选标签

省略可选标记(可选)。为了优化文件大小和可扫描性,可以考虑省略可选的标签。HTML5 规范定义了哪些标签可以省略。这种做法可能需要确定一个宽限期,作为更广泛的指导方针 因为它与 Web 开发人员通常所教的内容有很大不同。 出于一致性和简单性的原因,最好省略所有可选内容 标记,而不仅仅是一个选择。

<!-- Not recommended -->
<!DOCTYPE html>
<html><head><title>Spending money, spending bytes</title></head><body><p>Sic.</p></body>
</html><!-- Recommended -->
<!DOCTYPE html>
<title>Saving money, saving bytes</title>
<p>Qed.
3.1.8、type 属性

省略样式表和脚本的type属性。不要对样式表(除非不使用 CSS)和脚本使用type属性 (除非不使用 JavaScript)。在这些上下文中指定type text/css text/javascript 属性不是必需的,因为 HTML5 暗示了这一点 和 作为默认值。即使对于较旧的浏览器,也可以安全地完成此操作。

<!-- Not recommended -->
<link rel="stylesheet" href="https://www.google.com/css/maia.css"type="text/css">
<!-- Recommended -->
<link rel="stylesheet" href="https://www.google.com/css/maia.css"><!-- Not recommended -->
<script src="https://www.google.com/js/gweb/analytics/autotrack.js"type="text/javascript"></script>
<!-- Recommended -->
<script src="https://www.google.com/js/gweb/analytics/autotrack.js"></script>
3.1.9、id 属性

避免不必要的 id 属性。首选用于样式设置class属性和用于脚本编写data属性。在严格需要 id 属性的地方,总要在其值中包含一个连字符,以确保它不符合 JavaScript 标识符语法,例如,使用 user-profile 而不是仅仅使用 profile 或 userProfile。

当一个元素具有 id 属性时,浏览器会将该id属性作为全局 window 原型上的命名属性提供,这可能会导致意外的行为。虽然包含连字符的id属性值仍然可以作为属性名称使用,但这些不能作为全局JavaScript 变量引用。

<!-- Not recommended: `window.userProfile` will resolve to reference the <div> node -->
<div id="userProfile"></div><!-- Recommended: `id` attribute is required and its value includes a hyphen -->
<div aria-describedby="user-profile">…<div id="user-profile"></div>…
</div>

3.2、HTML 格式规则

3.2.1、常规格式

对每个块、列表或表元素使用换行符,并缩进每个此类元素 子元素。每个display与元素的样式无关(因为 CSS 允许元素假定 属性的不同角色),将每个块、列表或表元素 在新行上。此外,如果它们是块、列表或表元素的子元素,请缩进它们。

如果您遇到列表项之间的空白问题,那么将所有 li 元素放在一行中是可接受的。建议 linter 发出警告而不是错误。

3.2.2、HTML 换行

断开长行(可选)。虽然HTML没有列限制的建议,但如果可以显著提高可读性,您可能需要考虑换行。在换行时,每行的延续行都应该缩进,以便区分换行属性和子元素。 最好通过自动代码格式化工具在项目内一致地换行。

3.2.3、HTML 引号

引用属性值时,请使用双引号。使用双引号("") 而不是单引号('') 包围属性值。

<!-- Not recommended -->
<a class='maia-button maia-button-secondary'>Sign in</a><!-- Recommended -->
<a class="maia-button maia-button-secondary">Sign in</a>

4、CSS

4.1、样式规则

4.1.1、CSS 有效性

尽可能使用有效的 CSS。除非处理 CSS 验证器错误或需要专有语法,否则请使用有效的 CSS 代码。使用W3C CSS验证器等工具进行测试。

使用有效的CSS是一个可衡量的基本质量属性,它允许我们找出可能没有任何效果的CSS代码并将其删除,同时确保CSS的正确使用。

4.1.2、类命名

使用有意义或通用的类名。不要使用表现性或者隐晦的名称,而应该使用反映元素目的或者通用的类名。具体且反映元素用途的名称应为首选,因为这些是最容易理解的,也是最不可能改变的。

通用名称只是那些没有特定含义或与同级元素含义不同的元素的备用名称。它们通常被用作“助手”。使用功能名称或通用名称可以减少不必要的文档或模板更改的可能性。

/* Not recommended: meaningless */
.yee-1901 {}/* Not recommended: presentational */
.button-green {}
.clear {}/* Recommended: specific */
.gallery {}
.login {}
.video {}/* Recommended: generic */
.aux {}
.alt {}
4.1.3、类名样式

使用尽可能短但必要的类名。尝试传达课程的内容,同时尽可能简短。以这种方式使用类名有助于提高可接受的可理解性和代码效率。

/* Not recommended */
.navigation {}
.atr {}/* Recommended */
.nav {}
.author {}
4.1.4、类名分隔符

用连字符分隔类名中的单词。不要用任何字符连接选择器中的单词和缩写 (包括根本没有)除了连字符,以提高理解性和可扫描性。

/* Not recommended: does not separate the words “demo” and “image” */
.demoimage {}/* Not recommended: uses underscore instead of hyphen */
.error_status {}/* Recommended */
.video-id {}
.ads-sample {}
4.1.5、前缀

具有特定于应用程序的前缀的前缀选择器(可选)。在大型项目中,以及嵌入到其他项目或 外部站点使用前缀(作为命名空间)作为类名。使用简短、独特的 标识符后跟破折号。使用命名空间有助于防止命名冲突,并可以进行维护 更容易,例如在搜索和替换操作中。

.adw-help {} /* AdWords */
.maia-note {} /* Maia */
4.1.6、类型选择器

避免使用类型选择器限定类名。除非必要(例如,使用帮助程序类),否则不要在与类结合。出于性能原因,避免使用不必要的祖先选择器是有用的。

/* Not recommended */
ul.example {}
div.error {}/* Recommended */
.example {}
.error {}
4.1.7、ID 选择器

避免使用 ID 选择器。ID 属性在整个页面中应该是唯一的,即当一个页面包含许多由许多人处理的许多组件时,很难保证 不同的工程师。在所有情况下都应首选类选择器。

4.1.8、简写属性

尽可能使用简写属性。CSS 提供了各种缩写属性(如 font),这些属性在可能的情况下应始终使用,即使在只显式设置一个值的情况下也应如此。使用缩写属性对于代码效率和可理解性是有用的。

/* Not recommended */
border-top-style: none;
font-family: palatino, georgia, serif;
font-size: 100%;
line-height: 1.6;
padding-bottom: 2em;
padding-left: 1em;
padding-right: 1em;
padding-top: 0;/* Recommended */
border-top: 0;
font: 100%/1.6 palatino, georgia, serif;
padding: 0 1em 2em;
4.1.9、0 和单位

除非需要,否则省略“0”值后的单位规格。

4.1.10、十六进制表示法

尽可能使用 3 个字符的十六进制表示法。对于允许的颜色值,3 个字符的十六进制表示法更短,并且更简洁。

/* Not recommended */
color: #eebbcc;/* Recommended */
color: #ebc;
4.1.11、重要声明

避免使用 !important 声明。这些声明破坏了 CSS 的自然级联,使得推理和组合样式变得困难。应使用选择器特异性来覆盖属性。

4.2、CSS 格式规则

4.2.1、按字母顺序排列声明

按字母顺序排列声明(可选)。在项目中一致地对声明进行排序。在没有工具的情况下 自动执行并强制执行一致的排序顺序,请考虑将声明放入 按字母顺序排列,以便以易于的方式实现一致的代码 学习、记忆和手动维护。

出于排序目的,请忽略特定于供应商的前缀。但是,多个 特定于供应商的某个 CSS 属性的前缀应保持排序(例如 -moz 前缀位于 -webkit 之前)。

background: fuchsia;
border: 1px solid;
-moz-border-radius: 4px;
-webkit-border-radius: 4px;
border-radius: 4px;
color: black;
text-align: center;
text-indent: 2em;
4.2.2、块内容缩进

缩进所有块内容。区块内容全部缩进 , 即规则中的规则以及声明,以反映层次结构和增进理解。

@media screen, projection {html {background: #fff;color: #444;}}
4.2.3、在每次声明后使用分号

在每次声明后使用分号。出于一致性和可扩展性的原因,每个声明都以分号结束。

/* Not recommended */
.test {display: block;height: 100px
}/* Recommended */
.test {display: block;height: 100px;
}
4.2.4、在属性名称的冒号后使用空格

为了保持一致性,请始终在属性和值之间使用一个空格(但属性和冒号之间不要有空格)。

/* Not recommended */
h3 {font-weight:bold;
}
/* Recommended */
h3 {font-weight: bold;
}
4.2.5、声明块分离

在最后一个选择器和声明块之间使用空格。始终在最后一个选择器和开始声明块的左大括号之间使用单个空格。左括号应该与给定规则中的最后一个选择器位于同一行。

/* Not recommended: missing space */
.video{margin-top: 1em;
}/* Not recommended: unnecessary line break */
.video
{margin-top: 1em;
}
/* Recommended */
.video {margin-top: 1em;
}
4.2.6、选择器和声明分离

用换行分隔选择器和声明。始终为每个选择器和声明启动一个新行。

/* Not recommended */
a:focus, a:active {position: relative; top: 1px;
}
/* Recommended */
h1,
h2,
h3 {font-weight: normal;line-height: 1.2;
}
4.2.7、规则分离

用新行分隔规则。始终在规则之间放置一个空行(两个换行符)。

html {background: #fff;
}body {margin: auto;width: 50%;
}
4.2.8、CSS 引号

对属性使用单引号 ('') 而不是双引号 ("" 选择器和属性值。不要在 URI 值 (url()) 中使用引号。

异常:如果您确实需要使用@charset规则,则必须使用双引号,不允许使用单引号。

/* Not recommended */
@import url("https://www.google.com/css/maia.css");html {font-family: "open sans", arial, sans-serif;
}/* Recommended */
@import url(https://www.google.com/css/maia.css);html {font-family: 'open sans', arial, sans-serif;
}

4.3、CSS Meta规则

4.3.1、章节注释

按节注释对节进行分组(可选)。如果可能,请使用注释将样式表部分组合在一起。分开 带有新行的部分。

/* Header */.adw-header {}/* Footer */.adw-footer {}/* Gallery */.adw-gallery {}

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

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

【JavaSE】解密 继承和多态(下)

前言 紧接着上篇 解密继承和多态&#xff08;上&#xff09;~ 欢迎关注个人主页&#xff1a;逸狼 创造不易&#xff0c;可以点点赞吗~ 如有错误&#xff0c;欢迎指出~ 目录 前言 protected关键字 在同一包下同一类可以访问 代码理解 在同一包下不同类可以访问 代码理解 …

HarmonyOS 应用开发之LifecycleForm接口切换LifecycleApp接口切换 LifecycleApp接口切换

LifecycleForm接口切换 FA模型接口Stage模型接口对应d.ts文件Stage模型对应接口onCreate?(want: Want): formBindingData.FormBindingData;ohos.app.form.FormExtensionAbility.d.tsonAddForm(want: Want): formBindingData.FormBindingData;onCastToNormal?(formId: string…

蓝桥杯每日一题:壁画(前缀和)

题目描述&#xff1a; Thanh 想在一面被均分为 N 段的墙上画一幅精美的壁画。 每段墙面都有一个美观评分&#xff0c;这表示它的美观程度&#xff08;如果它的上面有画的话&#xff09;。 不幸的是&#xff0c;由于洪水泛滥&#xff0c;墙体开始崩溃&#xff0c;所以他需要加…

Octavia Venture 成立,打造数十亿美元规模的 AI 价值体系

​随着 OpenAI 相继发布 ChatGPT、Sora 等 AIGC 大模型后&#xff0c;AI 赛道的发展迎来了一轮又一轮的热潮&#xff0c;这也让极具想象力的 AI 赛道涌入大量资金&#xff0c;比如英伟达股票市值短时间内从 1 万亿美元暴涨至 2 万亿美元&#xff0c;就是最好的佐证。当然&#…

Linux ssh免密登录配置

步骤 在本地机器上生成公钥和私钥对。将本地公钥复制到远程机器的~/.ssh/authorized_keys文件中。 实现1 在服务器上生成SSH密钥对 ssh-keygen -t rsa -f /home/id_rsa1ssh-keygen: 这是一个用于生成、管理和转换 SSH 密钥的 OpenSSH 工具。-t rsa: 用于指定要生成的密钥类…

Memcached 教程之 Memcached replace 命令(七)

Memcached replace 命令用于替换已存在的 key(键) 的 value(数据值)。 如果 key 不存在&#xff0c;则替换失败&#xff0c;并且您将获得响应 NOT_STORED。 语法&#xff1a; replace 命令的基本语法格式如下&#xff1a; replace key flags exptime bytes [noreply] value…

Python学习:面相对象

面向对象 面向对象技术简介 类(Class): 用来描述具有相同的属性和方法的对象的集合。它定义了该集合中每个对象所共有的属性和方法。对象是类的实例。方法:类中定义的函数。类变量:类变量在整个实例化的对象中是公用的。类变量定义在类中且在函数体之外。类变量通常不作为实…

【AI绘画/作图】风景背景类关键词模板参考

因为ds官网被墙,所以翻了IDE的源码整理了下stablestudio里的官方模板&#xff0c;顺便每个模板生成了一份…不知道怎么写关键词的可以参考 Stunning sunset over a futuristic city, with towering skyscrapers and flying vehicles, golden hour lighting and dramatic cloud…

《c++》多态案例一.电脑组装

一.代码展示 #include <iostream> using namespace std; class CPU { public://抽象计算函数virtual void calculate() 0;};class CVideoCard { public://抽象显示函数virtual void display() 0;}; class Memory { public://抽象存储函数virtual void storage() 0;};…

JS的数学对象

数学对象 什么是数学对象&#xff1a;数学方面的‘函数’ 分别为&#xff1a;四舍五入、向上取整、向下取整、随机数 四舍五入 console.log(Math.round(20.8)) 向上取整 console.log(Math.floor(20.9)) 向下取整 console.log(Math.ceil(20.1)) 随机数 随机数 0-1 之间的…

yolov7代码 | model.named_models

文章目录 前言1. print(model)2. print(model.named_models)2.1 print(name)2.2 print(module)2.3 print(f"{name}:: {module}") 3. hasattr(module, weight) 前言 了解model.named_models&#xff0c;为剪枝做准备。 剪枝有一些层如果你不想剪掉&#xff0c;那就用…

linux 使用kubeadm安装部署K8S

上一节&#xff0c;安装了docker-20.10.14版本 安装kubeadm&#xff0c;kubelet和kubectl 由于版本更新频繁&#xff0c;这里指定版本号部署 yum install kubelet-1.23.4-0 kubeadm-1.23.4-0 kubectl-1.23.4-0 -y Loaded plugins: fastestmirror Repository epel is listed m…

提升自己最快的方式是什么?

提升自己最快的方式通常涉及到个人成长的各个方面&#xff0c;包括心理、情感、技能和知识等。根据查阅到的资料&#xff0c;以下是一些具体的方法和步骤&#xff0c;帮助你快速提升自己&#xff1a; 1. 培养屏蔽力 荷兰畅销书作家罗伊马丁纳提到&#xff0c;屏蔽力是个人成长…

实现恒功率控制丨极海APM32F035高压灌溉水泵参考方案

直流无刷电机用途广泛&#xff0c;具有高效节能、使用寿命长、运行可靠无电火花、结构简单易维护等性能优势&#xff0c;在办公设备、智能家居、消费家电、工业设备、医疗设备等领域已规模化落地。随着智能化技术与成本的持续优化&#xff0c;BLDC应用将进一步提升在各行业的渗…

OpenAI官宣,ChatGPT免登录使用

昨天&#xff0c;就在愚人节当天&#xff0c;OpenAI突然宣布ChatGPT3.5向所有人开放&#xff0c;意思是即使没有注册OpenAI的账号&#xff0c;也能体验ChatGPT&#xff0c;就像浏览器一样&#xff0c;联接即可使用。 消息一出&#xff0c;OpenAI的官网直接被大量的用户挤挂了。…

axios 封装 http 请求详解

前言 Axios 是一个基于 Promise 的 HTTP 库&#xff0c;它的概念及使用方法本文不过多赘述&#xff0c;请参考&#xff1a;axios传送门 本文重点讲述下在项目中是如何利用 axios 封装 http 请求。 一、预设全局变量 在 /const/preset.js 中配置预先设置一些全局变量 window.…

adobe stock会员开通付费付款订阅充值教程/adobe stock免费白嫖一个月

登录adobe stock的官网&#xff0c;点击你想要下载的视频&#xff0c;然后点击免费下载&#xff0c;我们点击免费试用按钮&#xff0c;可以看到非常贵&#xff0c;需要80美金一个月&#xff0c;用fomepay可以免费白嫖一个月 点击获取一张虚拟信用卡&#xff0c;就可以白嫖一个…

配mmdetection

1. 安装conda 链接后面补上 2. 装pytorch&#xff0c;版本别装错了 Start Locally | PyTorch用这里面的命令 nvcc --version看cuda版本&#xff08;实验室服务器是11.0&#xff0c;可以用这个11.8的 &#xff09; 检查torch和cuda版本的命令&#xff1a; import torch # …

C语言:二叉树的构建

目录 一、二叉树的存储 1.1 顺序存储 1.2 链式存储 二、二叉树的顺序结构及实现 2.1堆的概念及结构 2.2堆的构建 2.3堆的插入 2.4堆顶的删除 2.5堆的完整代码 三、二叉树的链式结构及实现 3.1链式二叉树的构建 3.2链式二叉树的遍历 3.2.1前序遍历 …

鸿蒙原OS开发实例:【ArkTS类库单次I/O任务开发】

Promise和async/await提供异步并发能力&#xff0c;适用于单次I/O任务的场景开发&#xff0c;本文以使用异步进行单次文件写入为例来提供指导。 实现单次I/O任务逻辑。 import fs from ohos.file.fs; import common from ohos.app.ability.common;async function write(data:…