vue2 axios的相关操作
import axios from 'axios'
axios.defaults.baseURL = 'http://127.0.0.1:8000'
设置跨域地址
axios.defaults.withCredentials = true
允许携带token
axios.defaults.headers['X-Requested-With'] = 'XMLHttpRequest'
发送异步请求
axios.defaults.headers['token'] = localStorage.getItem('token')
头部携带token
axios.defaults.headers.post['Content-Type'] = 'application/json'
post请求为json数据
生成器与迭代器的区别
一、生成器
1.生成器本质上就是一个函数,它记住了上一次返回时在函数体中的位置。
2.对生成器函数的第二次(或第n次)调用,跳转到函数上一次挂起的位置。
3.而且记录了程序执行的上下文。
4.生成器不仅“记住”了它的数据状态,生成器还记住了程序执行的位置。
生成器是一种可以简单有效的创建迭代器的工具。它们像常规函数一样撰写,但是在需要返回数据时使用yield语句。每当对它调用next()函数(有关next函数下面会提及),生成器从它上次停止的地方重新开始(它会记住所有的数据值和上次执行的语句)。
def letter(data):
for index in range(len(data)):
yield data[index]
s = print("hello")
for i in s:
print(i)
等价于
def letter(data):
for index in range(len(data)):
yield data[index]
for i in print("hello"):
print(i)
打印结果:
h
e
l
l
o
二、迭代器
简介:迭代器(iterator)有时又称游标(cursor)是程序设计的软件设计模式,可在容器(container,例如链表或阵列)上遍访的接口,设计人员无需关心容器的内容
1.功能:
迭代器使开发人员能够在类或结构中支持foreach迭代,而不必整个实现IEnumerable或者IEnumerator接口。只需提供一个迭代器,即可遍历类中的数据结构。当编译器检测到迭代器时,将自动生成IEnumerable接口或者IEnumerator接口的Current,MoveNext和Dispose方法。
2.特点:
(1)迭代器是可以返相同类型值的有序序列的一段代码。
(2)迭代器可用作方法、运算符或get访问器的代码体。
(3)迭代器代码使用yieldreturn语句依次返每个元素,yield break将终止迭代。
(4)可以在类中实现多个迭代器,每个迭代器都必须像任何类成员一样有惟一的名称,并且可以在foreach语句中被客户端,代码调用如下所示:foreach(int x in SimpleClass.Iterator2){}。
(5)迭代器的返类型必须为IEnumerable和IEnumerator中的任意一种。
三、区别
①生成器是生成元素的,迭代器是访问集合元素的一中方式
②迭代输出生成器的内容
③迭代器是一种支持next()操作的对象
④迭代器(iterator):其中iterator对象表示的是一个数据流,可以把它看做一个有序序列,但我们不能提前知道序列的长度,只有通过nex()函数实现需要计算的下一个数据。可以看做生成器的一个子集。