本文为InfoQ中文站特供稿件,首发地址为: http://www.infoq.com/cn/articles/rust-core-components 。如需转载,请与InfoQ中文站联系。原文发表于2015年12月22日,现根据之前约定将其全文转发到我(Liigo)个人博客里。

Rust是一门强调安全、并发、高效的系统编程语言。无GC实现内存安全机制、无数据竞争的并发机制、无运行时开销的抽象机制,是Rust独特的优越特性。它声称解决了传统C语言和C++语言几十年来饱受责难的内存安全问题,同时还保持了很高的运行效率、很深的底层控制、很广的应用范围,在系统编程领域具有强劲的竞争力和广阔的应用前景。

从狭义的角度说,Rust编程语言,就是其语言本身,一份以人类语言描述的计算机编程语言的规范文档。然而单单语言本身,仅具有理论价值;要发挥其实用价值,往往还要有编译器、标准库、运行环境等一系列配套设施,共同组成一套完整的生态体系。

从广义的角度说,Rust编程语言包括了:语言规范(reference)、编译器(rustc)、运行时(runtime)、标准库(std)、核心库(core)、库(crates)、包管理器(cargo)、社区(communities)等等。

本文将比较详细的介绍广义上的Rust编程语言各个组成部分。

语言规范

Rust语言规范规定了Rust编程语言的语法和语义。跟其他语言规范一样,充满枯燥的文字,真正愿意通读下来的人很少。大多数人通过初级教程学习语言的基本语法和语义,仅在必要时翻阅或查阅语言规范的局部内容。(严格来说,Rust目前提供的这份文档并不算是语言规范文档(specification),而仅仅只是参考文档。)

编译器(rustc)

官方的rustc是目前唯一的Rust编译器(之前的rustboot编译器早就被废弃了),它负责把Rust源代码编译为可执行文件、Rust库(crates)或其他库文件(.a/.lib/.so/.dll)。

  • rustc是跨平台的应用程序,其可执行文件名是 rustc (for Unix/Linux/…) 或 rustc.exe (for Windows),最基本的命令行调用方法是 rustc hello.rs

  • rustc具有交叉编译功能,可以在当前平台下编译出可运行于其他平台的应用程序和库(但需要事先编译或安装目标平台的工具链)。

  • rustc采用LLVM作为编译器后端,具有很好的代码生成和优化技术,支持许多目标平台。

  • rustc目前使用gcc作为链接器(同时也运行时依赖glibc运行库,今后可换用MUSL静态库,相关开发工作在进行中);今后在Windows平台将支持使用MSVC作为链接器(相关开发工作在进行中)。

  • rustc编译出来的程序,支持用GDB和LLDB调试运行。用户不需要更换自己已经熟悉的调试工具,Rust没有也不需要自己专属的调试器。

  • rustc是用Rust语言开发的,并且是开源的,最新源代码在这里:https://github.com/rust-lang/rust/tree/master/src/librustc

运行时(runtime)

在没有明确上下文的情况下,运行时(runtime)通常可被理解为“运行时库(runtime library)”或“运行时损耗(runtime overhead)”。下面就这两种情况分别阐述,最后得出的结论是:Rust可以没有运行时库,且仅有很小的运行时损耗。

运行时库(runtime library)

编程语言的运行时库,通常理解为,其编译出的可执行程序在运行时必须依赖的非操作系统本身的动态库。例如C程序必须依赖msvcrt或glibc,Java程序必须依赖JRE,VB程序必须依赖msvbvm,易语言程序必须依赖krnln.fne/fnr,等等。由于C运行时库往往跟操作系统紧密集成(尤其是类Unix系统),可以认为C运行时库是操作系统的一部分,进而认为C没有运行时库(当然这里见仁见智)。如果认同这一点,那么,经过静态编译生成的Rust程序,运行时仅依赖C运行时库,也就可以认为没有运行时库了。即使不认同这一点,等以后Rust支持了静态链接MUSL库(同时抛弃掉glibc),依然能够做到没有运行时库。当然,动态编译的Rust程序中运行时还是必须依赖标准库libstd-*.so等动态库的,这是给予程序员的额外可选项。

说Rust“可以”没有运行时库,就是说运行时库不是必需的,程序员拥有选择权(而不是被迫必须接受运行时库)。

那为什么说没有运行时库是一个优势呢?因为运行时库本身也有平台依赖性和/或运行时依赖性,有运行时库就意味着,你的程序只能在运行时库所支持的平台下运行,也就是说它限制了程序的部署平台。而运行时库支持哪些平台并不是程序员个体所能决定的。就算运行时库官方开发商决定向新的平台移植,也往往受诸多因素干扰,例如十多年前试图将JRE移植到手机平台时就破费周折,甚至不得不大幅删减功能、人为制造了残缺不全的手机版JRE。再试想,在一个没有网络系统、没有文件系统,甚至没有操作系统的嵌入式平台上,你有可能在上面跑JRE环境吗?做梦。没有了运行时库,程序的所有代码都是程序员可控的(至于标准库的影响,下文将会谈到)。

(更宽泛地说,运行时库居无定形,未必一定以独立动态库的形式存在,它也可能隐身于标准库甚至是可执行文件内部。只要它给程序本身带来了额外的且无法消除的明显的依赖和不可忽略的运行时损耗,我们就通通认为它是运行时(库)。反过来说,如果运行时(库)的运行时损耗小到一定程度,且没有带来额外的运行时依赖,我们甚至可以认为它不是运行时(库)。此中斟酌,见仁见智。)

运行时损耗(runtime overhead)

程序的运行时损耗,是指程序在运行过程中所必须付出的额外的代价。例如Java的虚拟机、C#的垃圾回收器、脚本语言的解释器等等,这些子系统本身在运行时都会消耗数量可观的内存和CPU,影响程序和系统的运行性能。而Rust没有虚拟机、垃圾回收器和解释器,所以没有这类运行时损耗。

此外,内存管理、栈管理、调用操作系统API和C库等各种情况下,都有可能产生额外的运行时损耗。

Rust运行时需要每个函数执行morestack检查栈溢出(morestack已被取消),为了内存安全这是“必需的”检查,而以C语言的思路去看可能就是“额外的”损耗,无论如何这项运行时损耗很小。Unwinding仅发生在panic之后,不视为运行时损耗。Rust采用jemalloc管理内存(也可禁用),不仅没有运行时损耗,反而带来运行效率的明显提升。

Rust的Rc类型以引用计数管理对象内存,Arc类型以Atomic引用计数管理对象内存,这是较小的运行时损耗。但如果程序员不主动使用Rc/Arc类型,则无需为此付出额外的代价。

(Go语言的协程调度器,当然也有运行时损耗,但这在某种程度上是程序实现自身功能的必要,算不上“额外的”代价,如果不需要此功能则损耗很小,故本文作者不视其为运行时损耗。而其通过channel共享内存、管理逐步连续增长的栈、调用C库和系统API,则被视为运行时损耗,因为这些都是“非必要的”损耗,而且损耗还不小。)

(Java的JIT编译器在运行时把字节码编译为机器码,算不算运行时损耗呢?损耗肯定是有的,但仅在特定条件下触发,且其带来的收益可能远大于损耗,是提升运行性能的必要步骤,故本文作者不认为它引入了“额外的”代价,不视其为运行时损耗。而Java的虚拟机和垃圾收集器,显然是突出的运行时损耗。)

标准库(std)

Rust的标准库,为绝大多数的、常规的Rust程序开发提供基础支持、跨平台支持,是应用范围最广、地位最重要的库(没有之一)。其规模居中,既不像传统C和C++标准库那么简陋,也不像Java和.Net标准库那样包罗万象。

Rust标准库的内容大致归纳如下:

  • 基础的接口性数据类型

    如 Copy, Send, Sized, Sync, Drop, Deref, Clone, Iterator, IntoIterator, Debug, Display, Option, Result, Error, Eq, Ord, Fn, Cell, Hash 等等,其中多数都被包含在 std::prelude 内。这些简明扼要的类型,构成了Rust生态系统的基石。如果标准库不提供这些类型,让第三方库各行其是的话,整个生态系统将很难形成合力。

  • 基础类型操作接口

    如 bool, char, i8/u8, i16/u16, i32/u32, i64/u64, isize/usize, f32/f64, str/array/slice/tuple/pointer 等基础类型数据的操作接口及其实现。

  • 常用的功能性数据类型

    如 String, Vec, HashMap, Rc, Arc, Box, CString, OsString, SipHasher 等等。满足常见的、常用的,或特定的功能需求。

  • 常用的宏定义

    如 println!, format!, assert!, try!, panic!, vec!, thread_local!, file!, line!, include! 等等。基础的或核心的宏。其中某些宏是借助编译器实现的。

  • 跨平台的I/O相关的系统功能

    如 std::io, std::fs, std::path, std::env, std::process 等等。

  • 跨平台的网络/多线程/同步相关系统功能

    如 std::net, std::thread, std::sync 等等。

  • 其他的不跨平台的操作系统相关功能

    如 std::os,为各主流操作系统分别提供了专门的操作接口,便于实现系统特有的功能调用。

  • 底层操作接口

    如 std::mem, std::ptr, std::intrinsics 等,操作内存、指针、调用编译器固有函数。

  • 其他等等

核心库(core)

Rust核心库,可以理解为是经过大幅精简的标准库,它被应用在标准库不能覆盖到的某些少数特定领域,如嵌入式开发。

前面提到过,标准库应用范围很广,为绝大多数应用程序提供支持。但是在嵌入式开发、操作系统开发、裸金属(bare metal)环境下,标准库就无能为力了。主要有以下两个原因导致标准库的应用范围受到一定的限制:

  • 标准库的“跨平台”是指“跨主流操作系统平台”,也就是跨 Windows、Unix/Linux、Mac/OSX 等少数几个操作系统。标准库内有相当数量的API(如文件、网络、多线程等)必须依赖操作系统提供的接口,到了非主流系统尤其是嵌入式系统环境下,标准库失去了底层系统的支撑根本就不可能工作。

  • 标准库内有相当数量的API(如String/Vec、Box、panic等)依赖内存申请和释放功能,但是在操作系统开发、裸金属(bare metal)环境下,要么不存在这些功能,要么需要自己开发。

这些限制对Rust标准库来说其实并不是问题,跟世界上大多数编程语言的标准库一样,为主流系统的主流应用开发提供丰富的功能支持,才是最重要的。如果单纯为了提升应用范围砍掉操作系统相关的功能,那标准库也大概成了空壳子,功能性和实用性大打折扣,彻底失去了标准库的价值——谁能接受一个连文件、网络、多线程功能都没有的标准库呢?

Rust的选择是,在标准库之外,再单独提供一个核心库,重点应对嵌入式应用开发。核心库不依赖任何操作系统,也不提供文件/网络/多线程/内存申请释放相关的任何功能,因而可移植性更好、应用范围更广。当用Rust开发一个操作系统或硬件驱动或嵌入式应用时,你总不能指望去调用别的主流操作系统接口吧?那显然是不切实际的。所以对核心库来说,它缺少的那些OS相关功能原本就是多余的。

在代码开头写上 #![no_std] 就代表放弃标准库,而使用核心库。核心库里面有:基础的接口性数据类型(参见上文,下同)、基础类型操作接口、常用的功能性数据类型、常用的宏定义、底层操作接口等,而且跟标准库API几乎是完全一致的;再配合alloc库(或自己定制的alloc库)又有了内存申请释放功能;再加上collections库,String/Vec/HashMap等也有了。事实上从内部实现来说,标准库里的某些功能正是来源于核心库(以及alloc/collections等)。

库(crate)

把多个Rust源代码文件(后缀名.rs)放一起编译出来,就得到一个库。库通常以静态库.rlib或动态库.so/.dll的形式存在。我们称Rust库为crate,就像别的语言把库称为library或package差不多一个意思,只是习惯上的命名不同。

库是Rust程序员共享代码和功能的基本单元。编写应用程序和软件,无非就是综合利用各种库,官方的库、自己的库、第三方的库,调用它们提供的接口(API),再融合自己的业务逻辑,最终达成目的。

在已经编译或安装了某个库xxx的前提下,要想调用这个库,需首先在源代码首部加入这么一行代码:

extern crate xxx;

我们不需要像Java担心CLASSPATH一样担心Rust库的加载路径,因为我们有Cargo(下面会讲到),因为我们有静态编译。

目前Rust已经有了大概3000多个公开的第三方库,全部集中在 crates.io 网站上(下面也会讲到)。这些库绝大多数都是Github上面的开源项目。我好像极少听到有谁发布二进制的库(而不是发布源代码)。

包管理器(Cargo)

Cargo是Rust官方提供的包管理器(package manager),类似于Java界的Gradle。Cargo负责下载库源代码,分析库的依赖项,下载依赖项的源代码,再分析依赖项的依赖项,如此这般,最终把他们逐个编译出来。一句话,就是处理下载(源代码)、依赖(第三方库)、和编译(生成库或可执行文件)。有了Cargo,无论多复杂的项目,无论有多复杂的依赖项,也只需在项目根目录下执行这么一条命令:

cargo build

Cargo包管理器跟crates.io网站形成了完整的生态系统。crates.io就是一个中心仓库,全世界几乎所有的Rust项目都被整合在此仓库中。每一个项目都包含了一个Cargo.toml的配置文件,指定了自身的依赖项。Cargo就是围绕Cargo.toml开展工作的。

在C和C++的世界里,如果一个开源项目没有任何依赖,往往会被当作一项优点。因为大家都知道,编译带有依赖项的源代码项目是很麻烦的,尤其是当依赖项又有依赖项的时候,尤其是当依赖项的版本号又不明确的时候。几十年了,都没出现一个被广泛接受的基于版本的依赖管理和编译工具,颇为遗憾。Rust不一样,它一开始就有了Cargo。

Cargo是一个令人骄傲的优秀的工具。它不仅是一个工具,更是一个生态系统。

社区(communities)

Rust有相当庞大的社区。仅参与开发Rust系统本身的开发者就多达1300人,并持续增长,这类开发者中,以Mozilla公司员工组成的约10人团队为核心,以来自世界各地的贡献者为辅助。采用Rust开发应用的开发者人数更多,但难以统计数量。当然,作为新兴语言,Rust社区规模相对Java、Python社区而言还稚嫩的很,发展潜力无限。

Rust开发者活动轨迹主要集中在Github网站、IRC在线聊天室、Reddit论坛和Rust官方论坛中。此外,围绕某些颇具雄心的项目还各自形成了独立子社区,如Servo、Piston、MaidSafe、Redox等。

源代码仓库、设计开发讨论区:
- https://github.com/rust-lang/rust
- https://github.com/rust-lang/rfcs
- https://github.com/rust-lang/cargo
- https://internals.rust-lang.org
- https://client00.chat.mibbit.com/?server=irc.mozilla.org&channel=%23rustc

用户应用讨论提问区:
- https://www.reddit.com/r/rust
- https://users.rust-lang.org
- https://stackoverflow.com/questions/tagged/rust
- https://client00.chat.mibbit.com/?server=irc.mozilla.org&channel=%23rust

官方网站:
- https://www.rust-lang.org
- https://www.rust-lang.org/community.html
- http://blog.rust-lang.org
- https://crates.io
- http://this-week-in-rust.org

中文用户讨论区
- http://rust.cc

总结

本文较详细的逐个介绍了Rust编程语言及其编译器、运行时、库、工具和社区等等核心部件,这些部件共同构成生机勃发的Rust生态系统。

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

相关文章

  1. SpriteRender 九宫格缩放(图文)

    本文讲解用SpriteRender 怎么做九宫格缩放。1.设置texture 的MeshType 为FullRect2.打开SpriteEditor,从图片的最上方,最下方,最左,最右,可以拖拽出四条边界线,拖拽成如图所示。如图,图片被划分成了九个格子,其中四个角的格子是不会被拉伸的3.设置SpriteRender的DrawMo…...

    2024/5/8 20:44:57
  2. Velocity 用户指南手册中文版

    1. 关于Velocity 用户指南旨在帮助页面设计者和内容提供者了解Velocity 和其简单而又强大的脚本语言(VelocityTemplate Language (VTL))。本指南中有很多示例展示了用Velocity来讲动态内容嵌入到网站之中,但是所有的VTL examples 都同演示用于所有的页面和模版。感谢选…...

    2024/4/24 18:26:31
  3. 如何配置ODBC数据源

    1、在控制面板中,双击管理工具,然后打开ODBC数据源管理器。 2、在“系统DSN”选项卡中,单击“添加”按钮,打开“创建新数据源”对话框,在“名称”列表框中选择“SQL Server”。选好单击完成 3、在打开“建立新的数据源到SQL Server”对话框,在“名称”文本框输入新数据源…...

    2024/5/8 12:18:26
  4. swift 截取字符串

    swift3.0 使用String.Index来做位置索引,要想实现截取功能首先得获取到String.Index; 获取中间部分参数用Range<Index>即可; let str:String = btn.currentTitle ?? ""let indes = str.index(str.startIndex, offsetBy: str.length - 1)let prefix = str.s…...

    2024/4/12 13:55:16
  5. LinearLayout使一行图标排能自适应屏幕大小,使用layout_weight=1不会改变图片

    java android:layout_weight="1" style="?android:attr/borderlessButtonStyle" android:src="@drawable/tubiao"这个问题是做导航栏时遇到的问题一行图标通过android:layout_margin="“确定每个图标的位置时,只能保证在你运行的手机上的…...

    2024/5/8 14:49:31
  6. 屏幕输入法

    原文地址从Android 1.5开始,Android平台提供了一个输入法框架(IMF),允许创建屏幕上的输入方法,如软件键盘。本文概述了Android输入法编辑器(IME)是什么,以及应用程序需要做什么才能与它们协同工作。 IMF旨在支持新类Android设备(例如没有硬件键盘的设备),应用程序与…...

    2024/5/8 17:16:48
  7. VC实现自动配置ODBC数据源

    为了使ODBC能与数据库一起工作,必须把数据库注册到ODBC驱动程序管理器,这项工作可以通过定义一个DSN或数据源名字来完成。通常,我们只能手动打开系统控制面板,运行其中的ODBC数据源管理器,手工配置数据源,但是这项工作对用户而言过于复杂,我们必须考虑用程序替用户完成这…...

    2024/4/12 8:38:58
  8. 蒙特卡洛方法(Monte Carlo Method)

    蒙特卡洛方法(Monte Carlo Method) 特卡罗法(Monte Carlo method)是以概率与统计的理论、方法为基础的一种计算方法,蒙特卡罗法将所需求解的问题同某个概率模型联系在一起,在电子计算机上进行随机模拟,以获得问题的近似解。因此,蒙特卡罗法又称随机模拟法或统计试验法。二…...

    2024/4/18 14:00:14
  9. 代码疑云

    代码疑云(1)-掌握初始化列表代码:[cpp] view plaincopy#include<iostream> using namespace std; class A { private: int x1; int x2; public: A():x2(1),x1(x2++){} //初始化列表 void print() { cout<<"x1="<<x1<…...

    2024/4/16 23:18:30
  10. C语言贪吃蛇实现 链表学习

    以下代码片段就是整个源代码代码主要是github上大佬写的,附上地址(https://github.com/mnisjk/snake.git)我又在这基础上优化了点,释放漏释放的内存,禁止蛇反向运动#include <stdio.h> #include <stdlib.h> #include <stdbool.h> #include <curses.h> …...

    2024/4/15 18:18:57
  11. 如何配置数据库ODBC数据源

    在<调整计算机的设置>中,点击<系统和安全>.点击<管理工具>.点击<数据源(ODBC)>.点击<系统用户>,然后,点击按钮<添加>.在<创建数据源>里,找到Microsoft Access Driver(*.mdb),选中.然后点击完成.在<ODBC Microsoft Access 安装>…...

    2024/4/19 9:03:53
  12. 教你如何爬取某8APP的租房信息

    爬虫爬取某数字app的房屋信息 声明:本文只是用来学习交流,并不是用来使用爬虫恶意爬去别人劳动成果,本文只是用来作为研究分享爬虫的思路,加强开发人员在日常开发工作中的安全意识。 缘起 从广州回来的时候,第一件要解决的事情就是租房。由于房屋信息比较分散,并且租房的…...

    2024/4/18 4:27:15
  13. 蒙特卡洛(Monte Carlo)方法

    采用知乎上的说法,其实它本身不算是一种算法,更像是对一类随即算法特性的概括。通常会将随即算法分为两类:蒙特卡洛算法:采样越多,越近似最优解; 拉斯维加斯算法:采样越多,越有机会找到最优解;两者差别就有了,一个就尽量找更好的,只要比上一次好就行;而另一个是总是…...

    2024/4/26 14:24:42
  14. list集合转某个字段分类的map

    attendantRecordDOS按订单号分类://key为订单号Map<String, List<AttendantServiceRecordDO>> collect = attendantRecordDOS.stream().collect(Collectors.groupingBy(AttendantServiceRecordDO::getOrderSn));...

    2024/5/4 20:17:41
  15. 数组,一维,二维,多维

    数组一维数组数组初始化,创建数组,数组长度为5int [] array=new int[5];array[0] = 1;array[1] = 2;array[2] = 3;array[3] = 4;array[4] = 5;直接赋值的数组int[] array1 = new int[] {1,2,3,4,5 }; 数组,在创建的时候,需要规定数据类型,初始长度二维数组int [,] shuzu =…...

    2024/5/7 6:06:38
  16. 使用SqlConfigDataSource实现ODBC数据源配置

    使用SqlConfigDataSource实现ODBC数据源配置ODBC(Open Database Conectivity)即开放式数据库互联,作为Windows开放性结构的一个重要部分已经为很多的Windows程序员所熟悉,ODBC的工作依赖于数据库制造商提供的驱动程序,使用ODBC API的时候,Windows的ODBC管理程序,把数据库…...

    2024/4/18 21:39:28
  17. Velocity页面中输出时间年月

    问题:注册页面要求有创建时间的选项添加,年为至今为止实现:在java中处理,传值到VM中,利用#foreach遍历list 开始时觉得这样实现很好,但偶然间发现,太笨了,直接用Velocity就可以实现代码: ##获取当前年份#set($year=$!date.format(yyyy,$date))#set($Integ…...

    2024/4/18 22:13:37
  18. 深度学习之目标检测(五)—— DSSD & DSOD

    DSSD算法2017年CVPR,WeiLiu提出的SSD算法对小目标不够鲁棒的最主要原因是浅层feature map的表征能力不够强网络结构DSSD vs SSDDSOD算法2017年ICCV提出的,SSD+DenseNet = DSODDSOD可以从0开始训练数据,不需要预训练模型,而且效果可以和fine-tune的模型媲美DSOD设计原则DSOD…...

    2024/5/6 19:13:38
  19. 网站/h5封装App如何选择在线封装平台?

    App永远都是一个企业最终提高效率及转化的手段,可能大家都知道源码搭建App,却忽略了其实咱们的网址就可以封装成App。但是有些企业不知道APP制作平台是不是靠谱,该如何选择?所以接下来亥著就来介绍一下在线App制作:App制作平台可靠吗?现在与App开发相关的技术比较专业,软…...

    2024/5/6 20:44:06
  20. SQL Sever 2014配置ODBC数据源

    前言 时间不留情,作为一个年轻人这么能遇到困难轻言放弃呢,所以遇到问题,解决问题,问题就不是问题了。今天我的问题终于解决了,特来总结一下。 背景 在进行学生信息管理系统调试的时候出现了问题。后来经上网查询才知道,在敲或者在调试之前要先安装SQL,本人安装的是SQL …...

    2024/5/6 18:26:29

最新文章

  1. 一站式IT运维管理平台CAT

    什么是 CAT &#xff1f; CAT&#xff08;Coffee And Tea&#xff09;是专为 IT 运维从业者打造的一个开源的、开放的一站式 IT 运维管理平台。包含资产管理、工单、工作流、仓储等功能模块&#xff0c;以及可靠的移动端应用&#xff08;Uniapp&#xff09;支持。 CAT 项目是 c…...

    2024/5/8 21:54:44
  2. 梯度消失和梯度爆炸的一些处理方法

    在这里是记录一下梯度消失或梯度爆炸的一些处理技巧。全当学习总结了如有错误还请留言&#xff0c;在此感激不尽。 权重和梯度的更新公式如下&#xff1a; w w − η ⋅ ∇ w w w - \eta \cdot \nabla w ww−η⋅∇w 个人通俗的理解梯度消失就是网络模型在反向求导的时候出…...

    2024/5/7 10:36:02
  3. CSS3 高级- 复杂选择器、内容生成、变形(transform)、过渡(transition)、动画(animation)

    文章目录 一、复杂选择器兄弟选择器:选择平级元素的唯一办法属性选择器:1、通用:基本用不着,太泛了2、自定义:4种伪类选择器:1、目标伪类:2、结构伪类:3、元素状态伪类:4、伪元素选择器:应用于文字,使网页看起来想杂志5、否定伪类:选择器:not([本选择器的条件]) /*…...

    2024/5/8 20:49:02
  4. axios拦截器:每次请求自动带上 token

    Step 1&#xff1a;创建Axios实例并添加拦截器 在你的Vue项目中&#xff0c;一般我们会先导入axios&#xff0c;然后创建一个axios实例。这样做是为了方便统一管理和配置。 import axios from axios; // 引入axios// 创建一个axios实例 const service axios.create();// 添加请…...

    2024/5/4 22:20:25
  5. 【外汇早评】美通胀数据走低,美元调整

    原标题:【外汇早评】美通胀数据走低,美元调整昨日美国方面公布了新一期的核心PCE物价指数数据,同比增长1.6%,低于前值和预期值的1.7%,距离美联储的通胀目标2%继续走低,通胀压力较低,且此前美国一季度GDP初值中的消费部分下滑明显,因此市场对美联储后续更可能降息的政策…...

    2024/5/8 6:01:22
  6. 【原油贵金属周评】原油多头拥挤,价格调整

    原标题:【原油贵金属周评】原油多头拥挤,价格调整本周国际劳动节,我们喜迎四天假期,但是整个金融市场确实流动性充沛,大事频发,各个商品波动剧烈。美国方面,在本周四凌晨公布5月份的利率决议和新闻发布会,维持联邦基金利率在2.25%-2.50%不变,符合市场预期。同时美联储…...

    2024/5/7 9:45:25
  7. 【外汇周评】靓丽非农不及疲软通胀影响

    原标题:【外汇周评】靓丽非农不及疲软通胀影响在刚结束的周五,美国方面公布了新一期的非农就业数据,大幅好于前值和预期,新增就业重新回到20万以上。具体数据: 美国4月非农就业人口变动 26.3万人,预期 19万人,前值 19.6万人。 美国4月失业率 3.6%,预期 3.8%,前值 3…...

    2024/5/4 23:54:56
  8. 【原油贵金属早评】库存继续增加,油价收跌

    原标题:【原油贵金属早评】库存继续增加,油价收跌周三清晨公布美国当周API原油库存数据,上周原油库存增加281万桶至4.692亿桶,增幅超过预期的74.4万桶。且有消息人士称,沙特阿美据悉将于6月向亚洲炼油厂额外出售更多原油,印度炼油商预计将每日获得至多20万桶的额外原油供…...

    2024/5/7 14:25:14
  9. 【外汇早评】日本央行会议纪要不改日元强势

    原标题:【外汇早评】日本央行会议纪要不改日元强势近两日日元大幅走强与近期市场风险情绪上升,避险资金回流日元有关,也与前一段时间的美日贸易谈判给日本缓冲期,日本方面对汇率问题也避免继续贬值有关。虽然今日早间日本央行公布的利率会议纪要仍然是支持宽松政策,但这符…...

    2024/5/4 23:54:56
  10. 【原油贵金属早评】欧佩克稳定市场,填补伊朗问题的影响

    原标题:【原油贵金属早评】欧佩克稳定市场,填补伊朗问题的影响近日伊朗局势升温,导致市场担忧影响原油供给,油价试图反弹。此时OPEC表态稳定市场。据消息人士透露,沙特6月石油出口料将低于700万桶/日,沙特已经收到石油消费国提出的6月份扩大出口的“适度要求”,沙特将满…...

    2024/5/4 23:55:05
  11. 【外汇早评】美欲与伊朗重谈协议

    原标题:【外汇早评】美欲与伊朗重谈协议美国对伊朗的制裁遭到伊朗的抗议,昨日伊朗方面提出将部分退出伊核协议。而此行为又遭到欧洲方面对伊朗的谴责和警告,伊朗外长昨日回应称,欧洲国家履行它们的义务,伊核协议就能保证存续。据传闻伊朗的导弹已经对准了以色列和美国的航…...

    2024/5/4 23:54:56
  12. 【原油贵金属早评】波动率飙升,市场情绪动荡

    原标题:【原油贵金属早评】波动率飙升,市场情绪动荡因中美贸易谈判不安情绪影响,金融市场各资产品种出现明显的波动。随着美国与中方开启第十一轮谈判之际,美国按照既定计划向中国2000亿商品征收25%的关税,市场情绪有所平复,已经开始接受这一事实。虽然波动率-恐慌指数VI…...

    2024/5/7 11:36:39
  13. 【原油贵金属周评】伊朗局势升温,黄金多头跃跃欲试

    原标题:【原油贵金属周评】伊朗局势升温,黄金多头跃跃欲试美国和伊朗的局势继续升温,市场风险情绪上升,避险黄金有向上突破阻力的迹象。原油方面稍显平稳,近期美国和OPEC加大供给及市场需求回落的影响,伊朗局势并未推升油价走强。近期中美贸易谈判摩擦再度升级,美国对中…...

    2024/5/4 23:54:56
  14. 【原油贵金属早评】市场情绪继续恶化,黄金上破

    原标题:【原油贵金属早评】市场情绪继续恶化,黄金上破周初中国针对于美国加征关税的进行的反制措施引发市场情绪的大幅波动,人民币汇率出现大幅的贬值动能,金融市场受到非常明显的冲击。尤其是波动率起来之后,对于股市的表现尤其不安。隔夜美国股市出现明显的下行走势,这…...

    2024/5/6 1:40:42
  15. 【外汇早评】美伊僵持,风险情绪继续升温

    原标题:【外汇早评】美伊僵持,风险情绪继续升温昨日沙特两艘油轮再次发生爆炸事件,导致波斯湾局势进一步恶化,市场担忧美伊可能会出现摩擦生火,避险品种获得支撑,黄金和日元大幅走强。美指受中美贸易问题影响而在低位震荡。继5月12日,四艘商船在阿联酋领海附近的阿曼湾、…...

    2024/5/4 23:54:56
  16. 【原油贵金属早评】贸易冲突导致需求低迷,油价弱势

    原标题:【原油贵金属早评】贸易冲突导致需求低迷,油价弱势近日虽然伊朗局势升温,中东地区几起油船被袭击事件影响,但油价并未走高,而是出于调整结构中。由于市场预期局势失控的可能性较低,而中美贸易问题导致的全球经济衰退风险更大,需求会持续低迷,因此油价调整压力较…...

    2024/5/8 20:48:49
  17. 氧生福地 玩美北湖(上)——为时光守候两千年

    原标题:氧生福地 玩美北湖(上)——为时光守候两千年一次说走就走的旅行,只有一张高铁票的距离~ 所以,湖南郴州,我来了~ 从广州南站出发,一个半小时就到达郴州西站了。在动车上,同时改票的南风兄和我居然被分到了一个车厢,所以一路非常愉快地聊了过来。 挺好,最起…...

    2024/5/7 9:26:26
  18. 氧生福地 玩美北湖(中)——永春梯田里的美与鲜

    原标题:氧生福地 玩美北湖(中)——永春梯田里的美与鲜一觉醒来,因为大家太爱“美”照,在柳毅山庄去寻找龙女而错过了早餐时间。近十点,向导坏坏还是带着饥肠辘辘的我们去吃郴州最富有盛名的“鱼头粉”。说这是“十二分推荐”,到郴州必吃的美食之一。 哇塞!那个味美香甜…...

    2024/5/4 23:54:56
  19. 氧生福地 玩美北湖(下)——奔跑吧骚年!

    原标题:氧生福地 玩美北湖(下)——奔跑吧骚年!让我们红尘做伴 活得潇潇洒洒 策马奔腾共享人世繁华 对酒当歌唱出心中喜悦 轰轰烈烈把握青春年华 让我们红尘做伴 活得潇潇洒洒 策马奔腾共享人世繁华 对酒当歌唱出心中喜悦 轰轰烈烈把握青春年华 啊……啊……啊 两…...

    2024/5/8 19:33:07
  20. 扒开伪装医用面膜,翻六倍价格宰客,小姐姐注意了!

    原标题:扒开伪装医用面膜,翻六倍价格宰客,小姐姐注意了!扒开伪装医用面膜,翻六倍价格宰客!当行业里的某一品项火爆了,就会有很多商家蹭热度,装逼忽悠,最近火爆朋友圈的医用面膜,被沾上了污点,到底怎么回事呢? “比普通面膜安全、效果好!痘痘、痘印、敏感肌都能用…...

    2024/5/5 8:13:33
  21. 「发现」铁皮石斛仙草之神奇功效用于医用面膜

    原标题:「发现」铁皮石斛仙草之神奇功效用于医用面膜丽彦妆铁皮石斛医用面膜|石斛多糖无菌修护补水贴19大优势: 1、铁皮石斛:自唐宋以来,一直被列为皇室贡品,铁皮石斛生于海拔1600米的悬崖峭壁之上,繁殖力差,产量极低,所以古代仅供皇室、贵族享用 2、铁皮石斛自古民间…...

    2024/5/8 20:38:49
  22. 丽彦妆\医用面膜\冷敷贴轻奢医学护肤引导者

    原标题:丽彦妆\医用面膜\冷敷贴轻奢医学护肤引导者【公司简介】 广州华彬企业隶属香港华彬集团有限公司,专注美业21年,其旗下品牌: 「圣茵美」私密荷尔蒙抗衰,产后修复 「圣仪轩」私密荷尔蒙抗衰,产后修复 「花茵莳」私密荷尔蒙抗衰,产后修复 「丽彦妆」专注医学护…...

    2024/5/4 23:54:58
  23. 广州械字号面膜生产厂家OEM/ODM4项须知!

    原标题:广州械字号面膜生产厂家OEM/ODM4项须知!广州械字号面膜生产厂家OEM/ODM流程及注意事项解读: 械字号医用面膜,其实在我国并没有严格的定义,通常我们说的医美面膜指的应该是一种「医用敷料」,也就是说,医用面膜其实算作「医疗器械」的一种,又称「医用冷敷贴」。 …...

    2024/5/6 21:42:42
  24. 械字号医用眼膜缓解用眼过度到底有无作用?

    原标题:械字号医用眼膜缓解用眼过度到底有无作用?医用眼膜/械字号眼膜/医用冷敷眼贴 凝胶层为亲水高分子材料,含70%以上的水分。体表皮肤温度传导到本产品的凝胶层,热量被凝胶内水分子吸收,通过水分的蒸发带走大量的热量,可迅速地降低体表皮肤局部温度,减轻局部皮肤的灼…...

    2024/5/4 23:54:56
  25. 配置失败还原请勿关闭计算机,电脑开机屏幕上面显示,配置失败还原更改 请勿关闭计算机 开不了机 这个问题怎么办...

    解析如下&#xff1a;1、长按电脑电源键直至关机&#xff0c;然后再按一次电源健重启电脑&#xff0c;按F8健进入安全模式2、安全模式下进入Windows系统桌面后&#xff0c;按住“winR”打开运行窗口&#xff0c;输入“services.msc”打开服务设置3、在服务界面&#xff0c;选中…...

    2022/11/19 21:17:18
  26. 错误使用 reshape要执行 RESHAPE,请勿更改元素数目。

    %读入6幅图像&#xff08;每一幅图像的大小是564*564&#xff09; f1 imread(WashingtonDC_Band1_564.tif); subplot(3,2,1),imshow(f1); f2 imread(WashingtonDC_Band2_564.tif); subplot(3,2,2),imshow(f2); f3 imread(WashingtonDC_Band3_564.tif); subplot(3,2,3),imsho…...

    2022/11/19 21:17:16
  27. 配置 已完成 请勿关闭计算机,win7系统关机提示“配置Windows Update已完成30%请勿关闭计算机...

    win7系统关机提示“配置Windows Update已完成30%请勿关闭计算机”问题的解决方法在win7系统关机时如果有升级系统的或者其他需要会直接进入一个 等待界面&#xff0c;在等待界面中我们需要等待操作结束才能关机&#xff0c;虽然这比较麻烦&#xff0c;但是对系统进行配置和升级…...

    2022/11/19 21:17:15
  28. 台式电脑显示配置100%请勿关闭计算机,“准备配置windows 请勿关闭计算机”的解决方法...

    有不少用户在重装Win7系统或更新系统后会遇到“准备配置windows&#xff0c;请勿关闭计算机”的提示&#xff0c;要过很久才能进入系统&#xff0c;有的用户甚至几个小时也无法进入&#xff0c;下面就教大家这个问题的解决方法。第一种方法&#xff1a;我们首先在左下角的“开始…...

    2022/11/19 21:17:14
  29. win7 正在配置 请勿关闭计算机,怎么办Win7开机显示正在配置Windows Update请勿关机...

    置信有很多用户都跟小编一样遇到过这样的问题&#xff0c;电脑时发现开机屏幕显现“正在配置Windows Update&#xff0c;请勿关机”(如下图所示)&#xff0c;而且还需求等大约5分钟才干进入系统。这是怎样回事呢&#xff1f;一切都是正常操作的&#xff0c;为什么开时机呈现“正…...

    2022/11/19 21:17:13
  30. 准备配置windows 请勿关闭计算机 蓝屏,Win7开机总是出现提示“配置Windows请勿关机”...

    Win7系统开机启动时总是出现“配置Windows请勿关机”的提示&#xff0c;没过几秒后电脑自动重启&#xff0c;每次开机都这样无法进入系统&#xff0c;此时碰到这种现象的用户就可以使用以下5种方法解决问题。方法一&#xff1a;开机按下F8&#xff0c;在出现的Windows高级启动选…...

    2022/11/19 21:17:12
  31. 准备windows请勿关闭计算机要多久,windows10系统提示正在准备windows请勿关闭计算机怎么办...

    有不少windows10系统用户反映说碰到这样一个情况&#xff0c;就是电脑提示正在准备windows请勿关闭计算机&#xff0c;碰到这样的问题该怎么解决呢&#xff0c;现在小编就给大家分享一下windows10系统提示正在准备windows请勿关闭计算机的具体第一种方法&#xff1a;1、2、依次…...

    2022/11/19 21:17:11
  32. 配置 已完成 请勿关闭计算机,win7系统关机提示“配置Windows Update已完成30%请勿关闭计算机”的解决方法...

    今天和大家分享一下win7系统重装了Win7旗舰版系统后&#xff0c;每次关机的时候桌面上都会显示一个“配置Windows Update的界面&#xff0c;提示请勿关闭计算机”&#xff0c;每次停留好几分钟才能正常关机&#xff0c;导致什么情况引起的呢&#xff1f;出现配置Windows Update…...

    2022/11/19 21:17:10
  33. 电脑桌面一直是清理请关闭计算机,windows7一直卡在清理 请勿关闭计算机-win7清理请勿关机,win7配置更新35%不动...

    只能是等着&#xff0c;别无他法。说是卡着如果你看硬盘灯应该在读写。如果从 Win 10 无法正常回滚&#xff0c;只能是考虑备份数据后重装系统了。解决来方案一&#xff1a;管理员运行cmd&#xff1a;net stop WuAuServcd %windir%ren SoftwareDistribution SDoldnet start WuA…...

    2022/11/19 21:17:09
  34. 计算机配置更新不起,电脑提示“配置Windows Update请勿关闭计算机”怎么办?

    原标题&#xff1a;电脑提示“配置Windows Update请勿关闭计算机”怎么办&#xff1f;win7系统中在开机与关闭的时候总是显示“配置windows update请勿关闭计算机”相信有不少朋友都曾遇到过一次两次还能忍但经常遇到就叫人感到心烦了遇到这种问题怎么办呢&#xff1f;一般的方…...

    2022/11/19 21:17:08
  35. 计算机正在配置无法关机,关机提示 windows7 正在配置windows 请勿关闭计算机 ,然后等了一晚上也没有关掉。现在电脑无法正常关机...

    关机提示 windows7 正在配置windows 请勿关闭计算机 &#xff0c;然后等了一晚上也没有关掉。现在电脑无法正常关机以下文字资料是由(历史新知网www.lishixinzhi.com)小编为大家搜集整理后发布的内容&#xff0c;让我们赶快一起来看一下吧&#xff01;关机提示 windows7 正在配…...

    2022/11/19 21:17:05
  36. 钉钉提示请勿通过开发者调试模式_钉钉请勿通过开发者调试模式是真的吗好不好用...

    钉钉请勿通过开发者调试模式是真的吗好不好用 更新时间:2020-04-20 22:24:19 浏览次数:729次 区域: 南阳 > 卧龙 列举网提醒您:为保障您的权益,请不要提前支付任何费用! 虚拟位置外设器!!轨迹模拟&虚拟位置外设神器 专业用于:钉钉,外勤365,红圈通,企业微信和…...

    2022/11/19 21:17:05
  37. 配置失败还原请勿关闭计算机怎么办,win7系统出现“配置windows update失败 还原更改 请勿关闭计算机”,长时间没反应,无法进入系统的解决方案...

    前几天班里有位学生电脑(windows 7系统)出问题了&#xff0c;具体表现是开机时一直停留在“配置windows update失败 还原更改 请勿关闭计算机”这个界面&#xff0c;长时间没反应&#xff0c;无法进入系统。这个问题原来帮其他同学也解决过&#xff0c;网上搜了不少资料&#x…...

    2022/11/19 21:17:04
  38. 一个电脑无法关闭计算机你应该怎么办,电脑显示“清理请勿关闭计算机”怎么办?...

    本文为你提供了3个有效解决电脑显示“清理请勿关闭计算机”问题的方法&#xff0c;并在最后教给你1种保护系统安全的好方法&#xff0c;一起来看看&#xff01;电脑出现“清理请勿关闭计算机”在Windows 7(SP1)和Windows Server 2008 R2 SP1中&#xff0c;添加了1个新功能在“磁…...

    2022/11/19 21:17:03
  39. 请勿关闭计算机还原更改要多久,电脑显示:配置windows更新失败,正在还原更改,请勿关闭计算机怎么办...

    许多用户在长期不使用电脑的时候&#xff0c;开启电脑发现电脑显示&#xff1a;配置windows更新失败&#xff0c;正在还原更改&#xff0c;请勿关闭计算机。。.这要怎么办呢&#xff1f;下面小编就带着大家一起看看吧&#xff01;如果能够正常进入系统&#xff0c;建议您暂时移…...

    2022/11/19 21:17:02
  40. 还原更改请勿关闭计算机 要多久,配置windows update失败 还原更改 请勿关闭计算机,电脑开机后一直显示以...

    配置windows update失败 还原更改 请勿关闭计算机&#xff0c;电脑开机后一直显示以以下文字资料是由(历史新知网www.lishixinzhi.com)小编为大家搜集整理后发布的内容&#xff0c;让我们赶快一起来看一下吧&#xff01;配置windows update失败 还原更改 请勿关闭计算机&#x…...

    2022/11/19 21:17:01
  41. 电脑配置中请勿关闭计算机怎么办,准备配置windows请勿关闭计算机一直显示怎么办【图解】...

    不知道大家有没有遇到过这样的一个问题&#xff0c;就是我们的win7系统在关机的时候&#xff0c;总是喜欢显示“准备配置windows&#xff0c;请勿关机”这样的一个页面&#xff0c;没有什么大碍&#xff0c;但是如果一直等着的话就要两个小时甚至更久都关不了机&#xff0c;非常…...

    2022/11/19 21:17:00
  42. 正在准备配置请勿关闭计算机,正在准备配置windows请勿关闭计算机时间长了解决教程...

    当电脑出现正在准备配置windows请勿关闭计算机时&#xff0c;一般是您正对windows进行升级&#xff0c;但是这个要是长时间没有反应&#xff0c;我们不能再傻等下去了。可能是电脑出了别的问题了&#xff0c;来看看教程的说法。正在准备配置windows请勿关闭计算机时间长了方法一…...

    2022/11/19 21:16:59
  43. 配置失败还原请勿关闭计算机,配置Windows Update失败,还原更改请勿关闭计算机...

    我们使用电脑的过程中有时会遇到这种情况&#xff0c;当我们打开电脑之后&#xff0c;发现一直停留在一个界面&#xff1a;“配置Windows Update失败&#xff0c;还原更改请勿关闭计算机”&#xff0c;等了许久还是无法进入系统。如果我们遇到此类问题应该如何解决呢&#xff0…...

    2022/11/19 21:16:58
  44. 如何在iPhone上关闭“请勿打扰”

    Apple’s “Do Not Disturb While Driving” is a potentially lifesaving iPhone feature, but it doesn’t always turn on automatically at the appropriate time. For example, you might be a passenger in a moving car, but your iPhone may think you’re the one dri…...

    2022/11/19 21:16:57