文章目录

      • 五、迭代器与生成器
        • 5.1 迭代器
          • 1 理解迭代
          • 2 迭代器模式
          • 3 可迭代协议
          • 4 迭代器协议
          • 5 自定义迭代器
          • 6 提前终止迭代器
        • 5.2 生成器
          • 1 生成器基础
          • 2 通过yield中断执行
          • 3 生成器作为默认迭代器
          • 4 提前终止生成器
        • 5.3 总结

五、迭代器与生成器

5.1 迭代器

1 理解迭代
  • 循环是迭代机制的基础,因为它可以指定迭代的次数,以及每次迭代要执行什么操作
    • 数组可以通过递增索引来遍历,但是由于迭代之前需要实现知道如何使用数据结构(数组中的每一项需要先引用取得数组对象,然后通过【】操作符取得索引位置上的项,所以不是所有的数据结构都适用),以及遍历的顺序不是数据结构所固有的(索引遍历不适合于具有隐式顺序的数据结构)
  • ES5新增了Array.prototype.forEach()方法
    • 这个方法解决了单独记录索引和通过数组对象取得值的问题,不过没有办法标识迭代何时终止,因此这个方法值适用于数组,而且回调结构也比较笨拙
  • 在早期的ES较早的版本,执行迭代必须使用循环或其他辅助结构,随着代码量增加,代码会变得越发混乱。ES6提出了迭代器模式。
2 迭代器模式
  • 迭代器模式把有些结构称为‘可迭代对象’(数组、集合这样的,包含的元素是有限的,而且都具有无歧义的遍历顺序)
  • 可迭代对象不一定是集合对象,也可以是仅仅具有类似数组行为的其他数据结构。
3 可迭代协议
  • 实现Iterable接口所需的两种能力:支持迭代器的自我识别能力和创建实现Iterable接口的对象的能力

  • 实现了Iterable接口的内置对象

    1. 字符串

    2. 数组

    3. 映射

    4. 集合

    5. arguments对象

    6. NodeList等DOM集合类型

      // 检查是否存在默认迭代器属性
      // 没有实现迭代器工厂函数
      let num = 1;
      let obj = {};
      console.log(num[Symbol.iterator]); // undefined
      console.log(obj[Symbol.iterator]); // undefined// 实现了迭代器工厂函数
      let str = 'abc';
      let arr = ['a','b','c'];
      let map = new Map().set('a',1).set('b',2).set('c',3);
      let set = new Set().add('a').add('b').add('c');console.log(str[Symbol.iterator]); // [Function: [Symbol.iterator]]
      console.log(arr[Symbol.iterator]); // [Function: values]
      console.log(map[Symbol.iterator]); // [Function: entries]
      console.log(set[Symbol.iterator]); // [Function: values]console.log(str[Symbol.iterator]()); // Object [String Iterator] {}
      console.log(arr[Symbol.iterator]()); // Object [Array Iterator] {}
      console.log(map[Symbol.iterator]()); // [Map Entries] { [ 'a', 1 ], [ 'b', 2 ], [ 'c', 3 ] }
      console.log(set[Symbol.iterator]()); // [Set Iterator] { 'a', 'b', 'c' }
  • 接收可迭代对象的原生语言特性包括

    1. for-of循环
    2. 数组解构
    3. 扩展操作符
    4. Array.from()
    5. 创建集合
    6. 创建映射
    7. Promise.all()接收由期约组成的可迭代对象
    8. Promise.race()接收由期约组成的可迭代对象
    9. yield*操作符
    let arr = ['foo','bar','baz'];// for-of循环
    console.log('for-of:');
    for (let el of arr) {console.log(el);
    }
    // 数组解构
    console.log('数组解构:');
    let [a,b,c] = arr;
    console.log(a,b,c);
    // Set构造函数
    console.log('Set构造函数:');
    let set = new Set(arr);
    console.log(set);
    // Map构造函数
    console.log('Map构造函数:');
    let pairs = arr.map((x,i) => [x,i]);
    console.log(pairs);
    let map = new Map(pairs);
    console.log(map);
    // Array.from()
    console.log('Array.from():');
    let arr2 = Array.from(arr);
    console.log(arr2);
    // 扩展操作符
    console.log('扩展操作符:');
    let arr3 = [...arr];
    console.log(arr3);/*
    for-of:
    foo
    bar
    baz
    数组解构:
    foo bar baz
    Set构造函数:
    Set(3) { 'foo', 'bar', 'baz' }
    Map构造函数:
    [ [ 'foo', 0 ], [ 'bar', 1 ], [ 'baz', 2 ] ]
    Map(3) { 'foo' => 0, 'bar' => 1, 'baz' => 2 }
    Array.from():
    [ 'foo', 'bar', 'baz' ]
    扩展操作符:
    [ 'foo', 'bar', 'baz' ]
    */
    
4 迭代器协议
  • 迭代器是一种一次性使用的对象,用于迭代与其关联的可迭代对象。迭代器API使用next()方法在可迭代对象中遍历数据,每次成功的调用next(),都会返回一个IteratorResult对象,其中包含迭代器的下一个值,如果不调用next(),则无法知道迭代器的当前位置。
  • IteratorResult包含两个属性:done、value。
    • done:布尔值,表示是否可以再次调用next()取得下一个值(false,表示后面还有值。true:状态表示‘耗尽’)
    • value:包含可迭代对象的下一个值
let arr = ['foo','bar'];
console.log(arr[Symbol.iterator]);
let iter = arr[Symbol.iterator]();
console.log(iter);
console.log(iter.next());
console.log(iter.next());
console.log(iter.next());/*
[Function: values]
Object [Array Iterator] {}
{ value: 'foo', done: false }
{ value: 'bar', done: false }
{ value: undefined, done: true }
*/
  • 每个迭代器都表示对可迭代对象的一次性有序遍历,不同迭代器的实例相互之间没有联系。
  • 迭代器维护着一个指向可迭代对象的引用,因此迭代器会阻止垃圾回收程序回收可迭代对象
5 自定义迭代器
  • class Counter {constructor(limit) {this.count = 1;this.limit = limit;}next() {if(this.count <= this.limit) {return {done: false, value: this.count++};}else {return {done: true, value: undefined};}}[Symbol.iterator]() {return this;}
    }let counter = new Counter(4);
    for(let el of counter) {console.log(el); // 1 2 3 4
    }
    

    ​ 该类实现了一个Iterator接口,但是里面的每个对象只能被迭代一次。在上面代码的基础上再次输出,结果没有任何东西。因此,如果把计数器变量放到闭包里面,然后通过闭包返回迭代器,就能解决这个问题。

    for(let el of counter) {console.log(el);
    }
    
  • class Counter {constructor(limit) {   this.limit = limit;}[Symbol.iterator]() {let count = 1;let limit = this.limit;return {next() {if(count <= limit) {return {done: false, value: count++};}else {return {done: true, value: undefined};}}}}
    }let counter = new Counter(4);
    for(let el of counter) {console.log(el);
    }
    for(let el of counter) {console.log(el); 
    }
    /*
    1 2 3 4 1 2 3 4
    */
    
6 提前终止迭代器
  • return()方法用于指定在迭代器提前关闭时执行的逻辑

    class Counter {constructor(limit) {   this.limit = limit;}[Symbol.iterator]() {let count = 1;let limit = this.limit;return {next() {if(count <= limit) {return {done: false, value: count++};}else {return {done: true, value: undefined};}},return() {console.log('Exiting early');return {done:true}}}}
    }
    let counter = new Counter(5);
    for(let i of counter) {// 1.提前结束if(i > 2) {break;}console.log(i);/*
    1	
    2
    Exiting early*/
    }// 2. try/catch捕捉
    try {for(let i of counter) {if(i > 2) {throw 'err'}console.log(i);}
    } catch (error) {console.log();}
    /*
    1
    2
    Exiting early
    */// 3.解构操作并未消耗所有值
    let [a,b] = counter;
    console.log(a,b);
    /*
    Exiting early
    1 2
    */// 4.如果迭代器关闭,则可以继续从上次离开的地方继续迭代。数组的迭代器就是不能关闭的
    let a = [1,2,3,4,5];
    let iter = a[Symbol.iterator]();
    for(let i of iter) {if(i > 2) {break}console.log(i);
    }
    console.log("第一次结束,第二次开始");
    for(let i of iter) {console.log(i);
    }
    /*
    1
    2
    第一次结束,第二次开始
    4
    5
    */
    

5.2 生成器

​ ES6新增的一个极其灵活的结构,拥有在一个函数块内暂停和恢复代码执行的能力

1 生成器基础
  • 定义方法
// 1.生成器函数声明
function* generatorFn() {}
// 2.生成器的函数表达式
let generatorFn = function* () {}
// 3.作为对象字面量方法的生成器函数
let Foo = {* generatorFn() {}
}
// 4.作为静态方法的生成器函数
class Bar {static * generatorFn() {}
}
// 箭头函数不能用来定义生成器函数
  • 调用生成器会产生一个生成器对象,一开始处于暂停执行的状态,生成器对象也执行了Iterator接口,因此也含有next()方法,调用这个方法会让生成器开始或恢复执行。
function* gen() {}
const g = gen();
console.log(g);
console.log(g.next);
console.log(g.next());
/*
Object [Generator] {}
[Function: next]
{ value: undefined, done: true }
*/
  • 生成器函数只会在初次调用next()方法后开始执行,生成器对象实现了Iterator接口,默认迭代器是自引用的。
2 通过yield中断执行
  • yield可以让生成器停止和开始执行,停止时,函数作用域的状态会被保留。停止执行的生成器函数只能通过在生成器对象上调用next()方法来恢复执行

    function* gen() {yield;
    }let g = gen();
    console.log(g.next());
    console.log(g.next());/*
    { value: undefined, done: false }
    { value: undefined, done: true }
    */
    
  • yield生成的值会出现在next()方法返回的对象里,通过yield退出的生成器函数会处在done:false状态,通过return退出会处于done:true状态

    function* gen() {yield 'foo';yield 'bar';return 'baz';
    }let g = gen();
    console.log(g.next());
    console.log(g.next());
    console.log(g.next());/*
    { value: 'foo', done: false }
    { value: 'bar', done: false }
    { value: 'baz', done: true }
    */
    
  • 生成器的每个对象互不影响,yield关键字只能在生成器函数内部使用,在外部或者出现到嵌套非生成器的函数中会抛出语法错误。

  • 生成器作为可迭代对象来使用非常方便

    function* gen() {yield 1;yield 2;yield 3;
    }
    for(const x of gen()) {console.log(x);
    }
    /*
    1
    2
    3
    */// 当我们需要定义一个可迭代对象,而他会产生一个迭代器,这个迭代器会执行指定的次数。
    function* gen(n) {while(n--) {yield;}
    }
    for(let _ of gen(4)) {console.log('foo');
    }
    /*
    foo
    foo
    foo
    foo
    */
    
  • 使用yield实现输入和输出

    // 上一次让生成器函数暂停的yield关键字会接收到传给next()方法的第一个值,第一次调用next()传入的值不会被使用,因为这一次调用是为了开始执行生成器函数。
    function* gen(v) {console.log(v);console.log(yield);console.log(yield);
    }let gen1 = gen('foo');
    gen1.next('bar'); // foo 这个传入的参数不会被使用
    gen1.next('baz'); // baz
    gen1.next('qux'); // qux
    
  • 通过‘*’增强yield的行为,让它产生一个可迭代对象,从而一次产生一个值

    function* gen() {yield* [1,2,3];//  等价于// for(const x of [1,2,3]) {//   yield x;// }
    }for(const x of gen()) {console.log(x);
    }
    

    而yield*的值是关联迭代器返回done:true时value属性

    function* inner() {yield 'foo';return 'bar';
    }function* outer() {console.log('iter value:',yield* inner());
    }for(const x of outer()) {console.log('value',x);
    }
    /*
    value foo
    iter value: bar
    */
    
  • yield实现递归算法(待解决

3 生成器作为默认迭代器
class Foo {constructor() {this.values = [1,2,3];}*[Symbol.iterator]() {yield* this.values;}
}
const f = new Foo();
for(const x of f) {console.log(x); // 1 2 3
}
4 提前终止生成器

​ 生成器除了和迭代器一样拥有next()、return(),还有一个throw()方法。

  • return()方法会强制生成器进入关闭状态,提供给return的值就是终止迭代对象的值。

    function* gen() {for (const x of [1,2,3]) {yield x;}
    }
    const g =  gen();console.log(g); // gen{<suspended>}
    console.log(g.return(4)); // {done:true,value:4}
    console.log(g); // gen{<closed>}
  • 与迭代器不同的是,所有的生成器对象都有return方法,只要通过它进入关闭状态,就无法恢复,后续通过调用next()会显示done:true状态,而提供的任何返回值都不会被存储或传播

    function* gen() {for (const x of [1,2,3]) {yield x;}
    }
    const g =  gen();console.log(g.next());
    console.log(g.return(4));
    console.log(g.next());
    console.log(g.next());
    /*
    { value: 1, done: false }
    { value: 4, done: true }
    { value: undefined, done: true }
    { value: undefined, done: true }
    */
    

    for-of会忽略done:true的值

    function* gen() {for (const x of [1,2,3]) {yield x;}
    }
    const g =  gen();
    for (const x of g) {if(x > 1) {g.return(4)}console.log(x); // 1 2
    }
    
  • throw()方法会在暂停时将一个提供的错误注入到生成器对象中,如果错误未被处理,生成器就会关闭

    function* gen() {for (const x of [1,2,3]) {yield x;}
    }
    const g =  gen();
    console.log(g); // gen{<suspended>}
    try {g.throw('foo');
    } catch(e) {console.log(e); // foo
    }
    console.log(g); // gen{<closed>}
    

    如果在生成器内部处理了这个错误,那么生成器就不会关闭,而且还可以恢复执行,错误处理会跳过相应的yield

    function* gen() {for (const x of [1,2,3]) {try {yield x;} catch (error) {}}
    }
    const g = gen();
    console.log(g.next());
    g.throw('foo');
    console.log(g.next());/*
    { value: 1, done: false }
    { value: 3, done: false }
    */
    

5.3 总结

  1. 迭代器是一个由任意对象实现的接口,支持连续获得对象产出的每一个值,而生成器是一种特殊的函数,调用之后会返回一个生成器对象,它们都实现了Iterator接口。
  2. 迭代器必须通过连续调用next()方法才能连续取得值,这个方法返回一个IteratorObject对象,包含一个done属性和一个value属性,前者是一个布尔值,表示是否还有更多的值可以访问,后者包含迭代器当前的值。
  3. 生成器支持yield关键字,能够暂停执行生成器函数,使用yield关键字可以通过next()方法接收输入和产生输出,在加上‘*’后,还可以将跟在它后面的可迭代对象序列化为一连串的值。
查看全文
如若内容造成侵权/违法违规/事实不符,请联系编程学习网邮箱:809451989@qq.com进行投诉反馈,一经查实,立即删除!

相关文章

  1. 云计算技术 — 多云

    目录 文章目录 目录多云多云的优势多云的用例灾难恢复(Disaster recovery)故障转移(Failover)成本优化(Cost optimization)避免供应商锁定(Avoiding vendor lock-in)数据主权(Data sovereignty)特定服务访问(Access to specialized services)低延迟多云的最佳实践部…...

    2024/4/20 12:26:45
  2. Hadoop生态圈

    参考链接 1.为什么需要分布式计算系统&#xff1f; 当前大数据的数据量已达PB级别&#xff08;1PB1024TB&#xff09;&#xff0c;可以说是庞大无比。同时数据还有结构化&#xff08;如数字、符号等&#xff09;、非结构化&#xff08;如文本、图像、声音、视频等&#xff09…...

    2024/4/19 17:09:35
  3. Docker 从入门到进阶三:构建自己的镜像并分享给大家用

    文章目录什么是镜像&#xff1f;镜像分层 与 联合文件系统Docker镜像加载原理commit 构建镜像本地镜像发布到阿里云什么是镜像&#xff1f; 是什么我想大家都知道了&#xff0c;不过我放一段比较专业的话&#xff1a;是一种轻量级、可执行的独立软件包&#xff0c;它包含运行某…...

    2024/5/8 17:32:24
  4. 将文件夹中的文件按照最后修改时间进行降序排列,并将文件全路径存入List集合

    package _06应用; import java.io.File; import java.util.ArrayList; import java.util.Arrays; import java.util.Comparator; import java.util.List; import java.util.logging.Logger; //import org.apache.log4j.Logger;//java实现遍历文件目录&#xff0c;根据文件最后的…...

    2024/4/13 12:23:01
  5. Spring Security使用原理解读

    目录1 集成SpringBoot1.1 Spring Boot 介绍1.2 创建maven工程1.3 spring 容器配置1.4 Servlet Context配置1.5 安全配置1.6 测试2 工作原理2.1 结构总览2.2 认证流程2.2.1 认证流程2.2.2.AuthenticationProvider2.2.3.UserDetailsService2.2.4.PasswordEncoder2.3.授权流程2.3.…...

    2024/4/13 12:23:16
  6. faiss-2: 快速入门

    数据准备 faiss可以处理固定维度d的向量集合&#xff0c;该集合用二维数组表示。 一般来说&#xff0c;需要两个数组&#xff1a; data&#xff1a;包含被索引的所有向量元素&#xff1b; query&#xff1a;索引向量&#xff0c;需要根据索引向量的值返回与向量集中的最近邻元…...

    2024/4/25 1:10:50
  7. JZ55二叉树的深度C++

    链接 https://www.nowcoder.com/practice/435fb86331474282a3499955f0a41e8b?tpId13&tqId11191&rp1&ru/ta/coding-interviews&qru/ta/coding-interviews/question-ranking 描述&#xff1a; 示例&#xff1a; 代码&#xff1a; 方法一&#xff1a; class …...

    2024/5/6 16:59:13
  8. SDUT ACM OJ 实验二链表

    A &#xff1a;顺序建立链表 #include<stdio.h> #include<stdlib.h>struct node {int data;struct node *next; }*head,*tail,*p,*q;int main () {head(struct node *)malloc(sizeof(struct node));head->nextNULL;tailhead;int n,i;scanf("%d",&…...

    2024/5/6 18:11:24
  9. 错题小结2

    1. 问题&#xff1a;程序出错在什么阶段&#xff1f; 答案&#xff1a;程序正常运行 解析&#xff1a;main函数可以接受两个参数 int main(int argc,char *argv[])&#xff0c;argc arguments count表示参数个数&#xff0c;argv argument vector表示指针数组&#xff0c;同…...

    2024/4/13 12:23:11
  10. PAT1017

    1017 A除以B (20 分) 本题要求计算 A/B&#xff0c;其中 A 是不超过 1000 位的正整数&#xff0c;B 是 1 位正整数。你需要输出商数 Q 和余数 R&#xff0c;使得 ABQR 成立。 输入格式&#xff1a; 输入在一行中依次给出 A 和 B&#xff0c;中间以 1 空格分隔。 输出格式&a…...

    2024/4/13 12:23:36
  11. YbtOJ-森林之和【dp】

    正题 题目大意 一个节点的权值定义为它度数的平方&#xff0c;求所有nnn个点的有标号森林的所有节点权值和。 1≤n,T≤51031\leq n,T\leq 5\times 10^31≤n,T≤5103 解题思路 首先因为所有节点本质相同&#xff0c;所以我们可以只考虑一个节点所有情况下的权值和。 然后考虑…...

    2024/5/6 18:40:57
  12. 浅谈selenium的webdriver(python自动化)

    提前约定一些变量 from selenium import webdriver driver webdriver.Chrome() url"xxx" driver.get(url)定位方法 通过元素id定位 driver.find_element(By.ID,id)通过元素name定位 driver.find_element(By.NAME,name)通过类名进行定位 driver.find_element(By…...

    2024/4/13 12:23:16
  13. MIT6.830 lab1 SimpleDb

    MIT6.830 lab1 SimpleDb 整个实验一共有6个lab&#xff0c;通过每一个lab的代码去实现一个简单的数据库&#xff0c;主要有&#xff1a;数据库的组织架构(字段、元组、模式、buffer pool等)、CRUD的实现、查询优化、事务与并发控制、崩溃与故障恢复。 SimpleDB consists of: Cl…...

    2024/4/13 12:23:36
  14. 《算法导论》练习与思考题第1-3章 (python版)

    目录第一章 算法在计算中的作用练习1.1 算法1.1-11.1-21.1-31.1-41.1-51.2 作为一种技术的算法1.2-11.2-21.2-3思考题1-1 运行时间的比较第二章 算法基础练习2.1 插入排序2.1-12.1-22.1-32.1-42.2 分析算法2.2-12.2-22.2-32.2-42.3 设计算法2.3-12.3-22.3-32.3-42.3-52.3-62.3-…...

    2024/4/30 5:41:00
  15. 大白话快速总结Java虚拟机

    这里写目录标题一、JVM的基本介绍1.1 Java 文件是如何被运行的1.2 简单的代码例子二、类加载器的介绍2.1 类加载器的流程2.2 类加载器的加载顺序2.3 双亲委派机制三、运行时数据区3.1 本地方法栈和程序计数器3.2 方法区3.3 虚拟机栈和虚拟机堆虚拟机栈的概念如何判断一个对象需…...

    2024/4/19 20:41:36
  16. 四旋翼无人机仿真之hector_quadrotor无人机(ROS + Gazebo)

    这里写自定义目录标题应用环境hector_quadrotor 功能包结构简介hector_quadrotor 功能包安装1. 安装所需依赖库2. 下载、安装hector_quadrotor参考文章应用环境 ubuntu16.04 (虚拟机实体机下均可&#xff09; ROS kinetic Gazebo为安装ROS时自带&#xff08;本人为Gazebo 7&am…...

    2024/4/16 1:28:01
  17. vue响应式,数据劫持发布订阅实现

    vue数据双向绑定原理&#xff1a; 数据劫持: vue.js 则是采用数据劫持结合发布者-订阅者模式的方式&#xff0c;通过Object.defineProperty()来劫持各个属性的setter&#xff0c;getter&#xff0c;在数据变动时发布消息给订阅者&#xff0c;触发相应的监听回调。 observer&am…...

    2024/5/6 5:43:49
  18. 领导者黏菌算法LSMA(学习笔记_12)

    1.理论分析 1.SMA SMA中种群个体的更新&#xff1a;依赖于最佳候选解&#xff08;Xbest&#xff09;另外两个随机候选解&#xff08;Xr1和Xr2&#xff09;。 2.改进过程 当两个随机黏菌候选解远离搜索空间时&#xff0c;随机化可能需要更长的时间才能到达最佳候选解。受其他…...

    2024/4/16 21:35:41
  19. 年终总结(21-22)

    工作大事记 年初接手了另外业务的项目&#xff0c;接手新项目能力得到了锻炼。自己做的系统先用起来&#xff0c;梳理主要流程的实现过程&#xff0c;认识系统的整体架构&#xff0c;和系统的业务对接人沟通发现其中的问题&#xff0c;提出自己的认识&建议 环境切割&#x…...

    2024/4/19 10:02:34
  20. 内部类和泛型

    目录 内部类 1.内部类分类 a.成员内部类 1)成员内部类对象的创建 2)成员内部类能否定义静态属性 3)对外部类来说&#xff0c;可否在外部类的静态方法中使用成员内部类 b.静态内部类 1)创建静态内部类对象 2)静态内部类能否拥有成员变量 3)静态内部类能否访问外部类的…...

    2024/4/18 7:12:51

最新文章

  1. 深入解析智能指针:从实践到原理

    &#x1f466;个人主页&#xff1a;晚风相伴 &#x1f440;如果觉得内容对你有所帮助的话&#xff0c;还请一键三连&#xff08;点赞、关注、收藏&#xff09;哦 如果内容有错或者不足的话&#xff0c;还望你能指出。 目录 智能指针的引入 内存泄漏 RAII 智能指针的使用及原…...

    2024/5/8 19:42:55
  2. 梯度消失和梯度爆炸的一些处理方法

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

    2024/5/7 10:36:02
  3. 腾讯云轻量服务器流量不够用了会怎么样?

    腾讯云轻量应用服务器是限制月流量的&#xff0c;如果当月流量不够用了&#xff0c;流量超额了怎么办&#xff1f;流量超额后&#xff0c;需要另外支付流量费&#xff0c;如果你的腾讯云账号余额&#xff0c;就会自动扣除对应的流量费&#xff0c;如果余额不足&#xff0c;轻量…...

    2024/5/8 8:45:36
  4. Java-运算符

    运算符 Java语言支持如下运算符&#xff1a; 算术运算符&#xff1a;&#xff0c;-&#xff0c;*&#xff0c;/&#xff0c;%&#xff0c;&#xff0c;--复制运算符&#xff1a;关系运算符&#xff1a;>, <, >, <, , !instanceof逻辑运算符&#xff1a;&&…...

    2024/5/8 1:50:44
  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/4 23:55:17
  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/4 23:55:16
  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