生成器的核心是一个yield关键字,一个生成器函数看起来像一个普通的函数,不同的是。普通函数返回一个值,而一个生成器可以yield生成许多它所需要的值。生成器函数被调用时,返回的是一个可以被遍历的对象。
yield和return有点类似,不过不同的是,return会返回值并且终止代码的执行,而yield会返回一个值给循环调用此生成器的代码并且只是暂停执行生成器函数。
';
var_dump($generator instanceof Iterator);
echo '
';
foreach ($generator as $value){
echo $value,'
';
}
输出结果:
.png)aaarticlea/png;base64,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" alt="" />
调用get_one_to_three()的时候,里面的代码并没有真正的执行,而是返回了一个生产期对象$generator=Generator Object(),$genetator instanceof Iterator说明Generator实现了Iterator接口,可以用foreach进行遍历,每次遍历都会隐式调用current()、next()、key()、valid()等方法。(Generator类中的方法)
<?php
Generator implements Iterator{
public mixed current(void)//返回当初产生的值
public mixed key(void)//返回当前产生的键
public void next(void)//生产器继续执行
public void rewind(void)//重置迭代器,如果迭代已经开始了,这里会抛出一个异常。
public mixed send(mixed $value)//向生成器中传入一个值,当前yield接收值,然后继续执行下一个yield
public void throw(Exception $exception)//向生成器中抛入一个异常
public bool valid(void)//检查迭代器是否被关闭,已被关闭返回FALSE,否则返回TRUE
public void __wakeup(void)//序列化回调
public mixed getReturn(void)//返回generator函数的返回值,PHP version 7+
}
处理大数据
下面通过实现一个xrange函数来简单说明:
<?php
function xrange($start,$end,$step=1){
for($i=$start;$i<=$end;$i+=$step){
yield $i;
}
}
foreach(xrange(1,10) as $num){
echo $num,'
';
}
输出结果:
.png)aaarticlea/png;base64,iVBORw0KGgoAAAANSUhEUgAAADUAAADWCAYAAABxNspcAAAAAXNSR0IArs4c6QAAAARnQU1BAACxjwv8YQUAAAAJcEhZcwAADsMAAA7DAcdvqGQAAAPwSURBVHhe7ZxbkuowDETZYZaVpWQpLIVl5MYPwPGjRvZlSLenT5U/Bn44JVtIipnbPiGSYkFSLEiKhX6px7Yvt3W/xz8R6ZC67+vttt/8mkHqvr5EHtsyiVSCpC5CUg5JXYSkHJK6CEmxICkWJMWCpFiQFAtGqce+Lc/5RFwrbk1hkvKl0UkiDmGW7dDFY3z7+WHMsm+AVpJKQa7Wx6R8lHCTRbdUiBBuknB0SCVjZ+B07jBKPYUwE0OOSeq+OiHsFj7FIBWitDCEKGKWepVH+QI8Xx2JggdJsSApFiTFgqRYMEu9Wo64kMsmm9TRFJ4kYpOIKja4/eLIbJbONzChFPojUrNUaBTjmqOdz5gzUWBvwWGpEC1NaL+GQcql7+zDz3Gm8uEL9vxv/EwBIykWJMWCpFiQFAtDUs8hDGpb1S/lfz8VyqVppHwHvCxebA4pX50fFXuM1gRSybPfOaSykdgMUkWXSy9Vm0VwS1VuZBYLrwvuSBQJ82S/BEl9nzEpcCTFgqRYkBQLkmLBKNW4RwtaUtikwMuinL8uxfHrAYdNCvhJfI0OKY4k4bBJ5TwlqbNfhTBhwtySw1LI58wk9XiUn5w+Uk7gdHzimaK/RXa673cs5C/i8TMFjKRYkBQLkmJBUiz0ScW2/l1ZkN9LR7+6k2KTmnHw4qME/E81cgxS2L+VqmGQel/fObcfuNMls1SeJJATh12q+PSt16/HfKbK1h33rBmkYis/V6QO4vdUGq2QNOjnfu+EERZmieTokOJBUixIigVJsSApFn6Wqj3EThbiM6rhSIV+inyadCbUgfRPElOQo+QYkMKOkqNbCj1Kjk4p/Cg5+qSAL4SkdEmFH1niT2o7pDi2nsMuFSsLwOFRgVmKIes96UsUJEiKBUmxICkWJMWCXSofwADXSzap4nZzfFYFKmaSqrYcXpR4mjSlVPnMd5oRWTxHcSH3VSap0Euls4l4hwK0tTdItbYa7hb8Wap514/5xkvlYkiAOVIH5e2WGCXqlH4QkkXIfH4Bz//MUkxIigVJsSApFiTFgl0qG7ygNogOk1TZT8WGkXfw0qjGfeRYr3A3+6kgixgss1QRqWafdT2mM9Xup4ilHEHsvdY7eedbpXnWrmdcin5CW4A7SXKYpB7bevo+CucL96KIMVLvbOcX+KWr8TMFjKRYkBQLkmJBUiz0S/nqvF0ilS1KfOOLdEjFYYtfdam8JiwHNt/BJpW0Gc1bz9X+6ppqvnv7taRar19R0X9Myn/4SvV+xRb8damwdSX132j7OVpSva//Jh+TCttsspT+EkjeuyJKjg9KObIBzQVCjm4pBiTFgqRYmFBq3/8BAvkGUGcBBTkAAAAASUVORK5CYII=" alt="" />
上面这个xrange()函数提供了和PHP的内建函数range()一样的功能,但是不同的是range()函数返回的是一个包含值从1到10的数组,而xrange()函数返回的是依次输出的这些值得一个迭代器,而不会真正以数组形式返回。
这种方法的优点是显而易见的,它可以让你在处理大数据集合的时候不用一次性的加载到内存中,甚至你可以处理无限大的数据流。
处理大文件
来优化下读取大文件,在PHP读取大文件的时候,经常会出现内存不足的情况,如果文件过大的话,没法一次读取完,采用yield来实现大文件的读取。
老式读取
function readLocalFile($fileName){
$handle=fopen($fileName,'r');
$lines=[];
while(!feof($handle)){
$lines[]=fgets($handle);
}
fclose($handle);
return $lines;
}
yield读取方式
function readYieldFile($fileName){
$handle=fopen($fileName,'r');
while(!feof($handle)){
yield fgets($handle);
}
fclose($handle);
}
为了便于测试,我们写一个读取内存的辅助函数
function formatBytes($bytes)
{
if ($bytes < 1024) {
return $bytes . 'b';
} elseif ($bytes) {
return round($bytes / 1024, 2) . 'kb';
}
return round($bytes / 1048576, 2) . 'mb';
}
测试
//第一种
var_dump(readLocalFile('./test.txt'));
echo '
',formatBytes(memory_get_peak_usage()),'
';
//第二种
$lines = readYieldFile('./test.txt');
foreach ($lines as $row) {
echo $row,'
';
}
echo formatBytes(memory_get_peak_usage());
输出结果:
.png)aaarticlea/png;base64,iVBORw0KGgoAAAANSUhEUgAABZAAAADjCAYAAAAbpzGVAAAAAXNSR0IArs4c6QAAAARnQU1BAACxjwv8YQUAAAAJcEhZcwAADsMAAA7DAcdvqGQAAC06SURBVHhe7d2Ncas6FgDgdOiyXMIrwQ1sDy4lZXgBSRikI4x/cuMk3zfD7AsGIR0d5NyzDPm4AAAAAABAQAEZAAAAAICQAjLPOR8vHx8fl+M5//wXfXUMPk+Xw9D+4fSZd/By8nh2Pn5Msfj4OFzuSjkx/B6/fX1oxvd5OR2G/Dychv9KUs4eL1LvH/rt97v17FewNvBTyFW+le88fgp1kW/3wwrI58uxSpjP02Fa8Mq2/Gz6Ml78I3OP9AW+VThJfSjXWy606dz4s1U/33x1vitu/+wLp537SV5E5tiWX76mfu0tgF0LEqcHcubLY7Brobx3DP08LsY8qK+5zPHt/ny3Tr70fHce5+vPW5m/u/I4z+lxyIExFx4YTFqn7iwcF0/EcL7uac94c67nWF1juc7p9WeD1Vrx3v9Iu2sN/oe/SNX9Wq4H1y3HNvdrXz5srF/N+F5VQH7Vmlnn3bofvvufVa+Z7X2+iu1da+ZGDvyz8d2Sx7t3Xc/9Tlvnnihr4aKt5b38L9aSh921rpRx/YP1vupX/W+TtF3z8qF77XTf2P+9O9fUTq7uil3e/9a5mu/dvX38Z7la96usB9U2f37XmnrnerXH7nv+Vd/pyTLPlvH4rfmX5vlfrC8/LP++yl3res7tZWxW62e7TcesYvsv1pbHpXV/Zx/zuHbn9hOaftX5ulpn8jztzLvU9pDbu/7t+2p33CvB2vCjCsjTor3offklY97VJNR9E5kCdCt5U8DrJusv/jkpqmSox/B+rl/A/zSPb4ji1sx/pbnpN5T2p/+9d+zBjfVSOxfK+8YQ5/GoxHXc4mumHPkXC/fD/uGXyz2iPJ72bXxx7M/jMi/n+9a9hYfyv3jmPihr7/S/t75E4/wb+77aV77k6w7tWue/03uuwW3ccj+3JnzXfCbl3ngkB9M9dP+c3nfNaM0cYxDEJOhLudb7es+8a+KW7+utUL7ku3/K3S/8Xt8tzcvudf3m+lZyNGqrXOudMqDyNvOy1Mbt9pqS52HPQKacH9bR8+3c/27d+ynSydVd5wYxfzs/5ffQHd/T//L30MYd9/xd+TeMJv53UC6s7Lh/5d/9flz+fZW71vX9+RbGqrPWvpMpL96tj2WO5rAPa8NqXYjWirRv131X5mXHPfB6d94rVQ79nAJyM4lp4PWApxtnOZHNeX3NuaHgCycv0uuuxP1rFs63k/t9Mw7/UDSHYcxr+xfcMi/7cqAy3VS3+vKEPNZb47hvDEEer+K1tQDuj+u32RmzfyrK411fGnvjfT3u0XVmOu/Re/+Z+6B8MUUxauzPv5/5i1Qa31utwWHMcz9vTPjeXHxmDZ7OfWBO77tmtGYGOvf03jh8nzfMu2g9yGv7dij3rxHdHHhmPXup61h25dCt9S3n5yG8d/fH7du8zbwsBDGf5urWvbTr+24wH7dzDfpGd62pnVzdFbufkKt5rXqrPkY5l9eE7W7ujfed69Ued9zzd+Vf5ztd/n2hn5h/X+WudX3v+Dv/du+ste9kmq836+OeHJrWmrrfe+Ndjovuiy93770y5ta1j00BOQVinMS0rZMwXWxcWM/luLzIzhOfF/pl4Lba7CZMbqeMpx1c7ks14PZLY+9NF50baW/0MHkG0dj2TdJXS2OY5+Qa5Ou+spV4zPNxPXc6rZqnIRjzF1Yaf9mCOR6sjxkSM/8/cU2OVDHbN1f7jyvXmI6vrjV8uo5XPZZFDJrxRBeu4lxfronbzl8CtsdQa/N4LX0eX3P/PfW14jxexy9tpa/psyGm8xzkuXwqj/NatDymbm9Q5mcp2hfZl8fXeRnbbeen7uciP/N4r58N2/J69edDn+dY5kOGHdNnx3MQj3xI13TucNx0nVvH78+/KW51e+Va+cfvUcWoWmdXW/VZswY360Nuezyvai9KtXV+x2twHLOd87Az3uVeaNavrfHlPU0uDv+1ilFH95qhW2tmNo23XfvLtb5XvGamPi/2j9utvJv3jwcNFvO0zqlo7qv8H4+p2xuEMZuu0/luXdi3Zl6v0eRA05+d91UvDlU803Z7HOW6pb3n7reSw3ksdWwX1/pWYXzrnAk+G2Lc/bfJeNhonteqvShX8lzOxwwXa9rrxKzk1bad8Z5zfpy/KGeq+3rYmjbncZeYlC3OwfUxw3gXeb2ljHvXmtrJ1ZfG7svFa+o6fmkrfU2fDeOe8zzFYN4/HTW4J1dzPOZjFu0vQxnGtjMPtX1r6nVexmut5mfuT/VdMpjazvuuOVmPKW1bqVHGtyv/8tytD4v2RX5f/l3nZzpsnJT4uyzMlffPv5Rj7Xo39am0G/Q5SXE+/PdfsA7mOaj6tmo3cnNdX9qXb2mMQSx3xvirhfd5/T07bbmvcw7mp2Sn/x5Oar6Pcv6N8c5zWLZ2LgfVMXP7y/ma5yf/3BHHfOc6UuZluta1jXS/VdcucTr+r+1rds3x+n5cbHOn+vdKbD2mdQF5GMiqgRzgawAWHaqikgY7bPWAbrXZXCNZ33idiajPzcGtj5sCGgS6tu+4ti+9ReI6kXnHYDq2GcidxnHvGE8s9X89J6dFHxc3Yd4zybFuErozB+s5Tddct1lyaXnT5eOG7dq/aO7zuXviuHMB6BuvtexjEJ85Nst+RuMbDx33VTlxKm3tjckrRHFdSp/H10z9fLY/YywebyPo3zKPcx7W7af4D1snv+d47M7jYN/Guet4b8W48pI8Xvezuz51YrPsZzp3HOMiV6M1osSin2gP2J9//fGs78u7jW3U7e6W52IZkyFOw+8vWTtXkyi+oxzjazzy+VXc27WnHHd7vZnObeZwb/5GuX+H3vgW8UljK+Mo43rmfonsGUc/JnEM7/RU3gV9+5bv/mDfxrlNyKbr7pjbqc0ncqAeX4nP2M9Fp5r7KhrLHMNh6+bti0zXitucrjddP4+lCW7af/ue3pLaaJreK5jf6+9Ig2ZeRvHcjJoYz3MRzNny3HzcMhbh916YZ734tvb9u2ND7vtqzjbGM27X3SVuy3yJ9uV7tr7Os6Y+1bm6N3bpuGf7M+bH423cWFOjuRmknBy2at4fztUyPw+uqSmv63kITG3WuX6HaDyD9vrD3F5/IZrPu5kSdwviMV1rzxh/X/41cd7IofW5PyP/0nXa86d4zH3PY6k7OedFsD7NY61y+AX5cbWnvSAfiqn/O2K8ZRrn423cus+b9W8U5tEg77+ONc/LeOziwNRmtN6s24vuiem4+h6p5X7U6TKa2ow+2KW+p/L48s9xLudjOtcM43uX9f174xUWdWfKBLUdiCYpVrcZ3azVTTBNUKftRXJ1r7/zxtmVLFUAR9PYo/OCL6IooVLs+lt1+CDHrPv5hvoLorFO0lk+r1mY6vbKfFQXaJK914/6OuHcX/NjHbto/tv5etrUx3YsTWwW/Uw/dsZc7I3JS9yKS9X3lZQj9Wd353EeV9ruXNRuxTLnYdzHIE/q9nbmcbyIl/11e9Vx+Rr7nth9Lo/jfrZzPMVnde931oOyf9nXTp6mmN85v5vi/KuVOWiOm/q57k85tre110qxK5/fNS+d3LzqxLwT37a9YG5G9XG9e6i5Ti/e6xikLZrnffPV1RvfIj7LHOve40/r3IO5f2n8/etO/apOTn3tb21ePZF3vfme3Zl3dXslDtUF6rUnXovK/rq9IJ75uqstHFRnvvZq4rXzvgrjUM6txnNzTh4wtdnehym+ZX/uT3PhtH8919F9vtx618qfN98d225+X4Qx68zNoGkvn1/n8/q43N7u7736uuW45dZZGzrztU+vn8Mn9X3WGffwwTS/8/4wvoPu+U94KnbpuHge+1tvXGm7cx56sSrqtSFLfWzH9FiuBnOd7V1TV/dr3uJ5fs2aum67n8OzW3F+WDueFIshtmUdL1tz8d+Xf0174XdZidH1/J+Sf71+TvFY5F9zHw6Wx9SfT+0eDlOsbo31cXG+LaXxdXJomtvqszrH6637/Ze2rb60bt/nUdznPtaTnvdf+1D6Fp9/PS7/PtMkUd5f50GUbDvv2ZQX/fHetLwfp/9e5FMzrkHeF3V51dbD1vffRgE5B3Pc5gD0EyCc+EbUZg7y8tw60eufs/aancSYgnrrRr59cybrAI6mfkRJUk/4oJuQj8pJMW172s0J1p+rzhz3kq/eHyX1qIpFN1/q86fz6uOuebTsT8qjuo9753Wfco3VdXqxKbHMH2wu7oPdMXmJNo/X0ufxNV8b01EaezunXbfyuBOzbowfyuPOvTKq24vyeB5DsEY069UzMe/1c52fo+nay+M2cq+JZec+uJX397sdizmfomSK5uIZedzd6zXK+lXPcdGZr0582znqzff6nu7eC017t9aKooyrbXO61q7YBHaMr4zlFH4HvMqeOOS+vToGkXvzbl5verl/Z97V+3trxXTci9bMSD6vjUG6VtOfver+dPu+vq96cZjmvz43H9t0/RlR3Jrr5LG8OmaNfJ3h2v31bm3+HasXlGZeRr25yXFfxiM8v1w3H9fL5UHd3nRelM8rJQ5BDKZr7YtNY6Of5bN5nJ1xz33LHzTxKrau9agoVxu92KX9r+xPGnva2jgFcky6Y+jErBfjh3K1xOeFa2q5B9vYPhnzznhK3Lvtds57XvudPq8/q3jm321W+35f/jVx7t3z03Ff953+VfmX2m3X2ikey/43+VblyWr86fzyCoS5bzvHut+tsVe/h9Re3Z859zpzH7h1n4d52cvBZn8vD6u4NHNb1OfvzbVobcheEPOUm8fLMehLnbdTfodzkfvYDvpO65isCsjzwjlt46DjgEYdDCd+cLvNQU6EMrapreVAo0mozplF+6d9W7+g5T7tCm61kAzqSSyixaoZ28vkBNmTrPkGSlsdl84c9266en9zU2fVcb2YNedHc1/G2nYm2J/Gc3sR6ClxTdvUTj3mXmyqWHbHnO2OyUu0ebyWPo+v+WxMN+RY7rpHyrHTVuVxJ2ZTjKN7pJ7DXXm8sW7U7U0/x2tYc41w/zMxz/0c2gy3Rc41OZj7Eg9xPH8xpnrMWe+XtsdtxCL3d+xHN1bRXLxEWSt2tL3oZxuzPF/1WtCJb5svnfNL/3ID+9ebW2vFQnNuMl1rVwOBHeNLuZi3R69z0944xGvnUzHYdEfe5RxK23d89+drRHGo25t+3nefxmtMulbTn72ace+7rzbvgfrcfGwUjoc1cYvysTcPT8ZsQ/m3wJ62V/fzrnzszU1paxGP8PzSv5xDG/NStzedF1y3VeVJMV3rwe/Hrfyp87Az7uHAVezCPB3V7b1Ck6s9Uey+LldLrMJ1qlaOnbZqHjsxa3IyeyhXy/xFfa3P3x3vXh+fjHlnPPMYphgGY+me96yUV8t24++SaP/vy78mzr17fnXcz8m/3txO11qtedV3ZtPv5efjf6c2l98FU5t75m+3G2Of+tiObXZH7O9T7t2Na8/KsXmr4hPOeS8Hm/257ea7q/ru6MapPv9GvJdyX5rpfkXMc9vhd/JqLP3+prjumZ89rte5FpDDSYoDGg1k/8RHbeR9U/TbBT2chG4SVDf+aOrHreBdg7Kt7V9alNokifZHi0qKXX9rknIhXSMfu3VgpCTm6hqdOZ7i3btBFvvDOR9Ux4X5MqrPj+a+O1fLPCr2zmss7Gc95l5sqv50x5ztjslLBPfZSnAfzeKYPp7HOU43j+uI8rgTs26MH8rj3O/uwr5ob/q5vm5vDqLYP5PH6zzcMsVnOZ6N3Gti2bkPer+0Pa4TizkP+vfYJJiL1ToabFtxf2oNznO9vkYnrzrxbeeol5f5WrmB/etNL08jUe7ma90dm2zH+Oax5Bg9fK1Ne+MQ329RDFK/+9vWtX7md38vNwd1e9PPN+7lYjq2XmPStZr+7FX3p9v39X3Vi8M01/W5+djrNV6gituttW3c6ntr3fc8vu62NUfLc+//Drj2fXGNZl5G/bya14b8c3x+uVbuYy+XB3V703lRPjdyH9sLD9d68Ptxo5/ls/lynXHX/WriVWxd61FVrvZFsYtytfS/v7XjL/I1bh7XkeOzOrcTs16MH8rV0u8Xr6npGvWxccx36+bg1Tx/y/HsOO8xwXd6L0bT/uV9+vvyr4lz755fHfdz8m9931xN8aj6v1zXp8+rCZn3jTEq507xGvuc+lmd8qTtsUdjWIliv8iZcLvZ3o7jOlIOrs9N++I+NuNu9vfysPr9rM7JWX3+PbmWrtEce0e+98xxitpfXneKR/B7RB7vvnHcso7JtYAcBjUHvgpolCzhxO9qM5kXiyjgUWDCtgc5qVb7ozYDywWjL/W/bb/uS45V1cEpTk2n75VjmLfnmlsk4KQzx7141/t7N3t1XG8hT/sX53duijiOOS6r/cF87RbHovRxbjOPrRlznYu9GGa7Y/ISt+JS58XSehF5WI5H2p5bZJv+dvIwXKdGD+Zxr720v26vnttOHMNrP5PHY5NjDt2O8dTvVb6n63bvtWWbnfzu5fXjorh11q3I1M/X5FvK3cfnJcl9vyZLPJZOfNt86cViPZf715so3oPP8U9xVcLc7Zy/147xLe/Dr1kvR3vvwXRcff2pj88lyuCVeVf38868q/eHcz+ojntuzRx2D3lXi3N573x1NOPed1/14tCurYN87MN9jEz9vrW+5bE0F37yXs3KPThtTbzuNI1nMbfNvIx6c5Pjfvf3VDWns3L/1e1V8Y7Wxl6bu+arpz/uNJ523M3cVjkY30tl//O5sfJU7F6TqyUuaXt0HorUz7lPW2tBcK3HcvVWe4vzwzV1iHcQwrjNNL66P7t1xlPr5e7D1+0KxhPGqI35GLffln9NnDvn18f9rPxrrx+uoXNfx2t28mE45zz+79yh3L9TnEPP2cq3at4j09ifza8cq+Fa47Z5vR3q+zyc814ONvs785hjM8/RjfaW50/92ZNs+dz60JIj1ZX2W+Rru/4kUx9LHjbX6sXkUev7b/EKiyrI5cKrgPY7s3Wzb7dZjMceLofh8zYp151OSlvLa+brVW3vncR9x+3rS31jFLsTcsuYVDvGExrOXV0+SPxwLqdEbm+QZn/v5mzOz3O1vE65gVfnR/EeBNdJ/a5usOm4xxfy5qbN41iNZd63vE6UiyVP1v25/oXxvTF5hU5cZ+nz+JppHM/2Z5yvh9sYYr7qe45Tk1/VAON1avBoHpf5Wc5zlCO9eNftzTlS9fHJPC7Xb/OxysUxPtXaku6BdSxSHKt+NmNJmnvoaUH+NfO/YepnkAP3GNt4dA0e+npcBaO918I87cS3jP16fs6hpn/1PZF/Xl6n5POqvdyfdmIvh9W+KMdGaf+uuYnsGF8dr5KfD18zFIxjmJNVHpa+BfkVxvBez+TdcO7q8jmuy3135V29v5mnrHPcahz5mPV14rwZ15PVvnxuc93pOk+sO824d95XnThMsa3PDebgaVO/2/xby2NpLpz2N7G8S2rj0TGdj+u+N79Lh/HtzU2O+/L8Zl6T+ntq9/demGdDTqz6kvsXzMt0naDfu0X5H8UoH3f799RgX26vuc6zwlzdG7tX5OrYhSfaGPq/yqPmfq7WhixcZweP5uo8P8u4zfPd9qdu73xc52/J/fq4dJ061+8QjmeYx+M6/6c4BPn30tyb9OJRzUOJ7+rA35d/Y3ur+enFvXPc2+dficein+Vaq75P8vwO/0ZqPxvkvow1q2U/p/nsnfOUjXwL76vKdEww5/eYxvxoG7fv82ZdG/VysNmf4tPGvb0HUv4v45XPHY+r+1O1N+5bx7nNqWK6zuakbKn73blOJw9HYTyfkvpQrrP+I3qLGz4Ft56Q3gTlQG0sSP02r1Ib8WB7E1ESYd6aY9L19izQUbK01gG8WiTgtMU32XMJ9Rp1zNru5EQdtxKP3gJV7+/d7OH5i+uM23it4Px+zKrzg5jvm9Mt1byObdVjmX8OxpMPWdqO/76YPC9dJwzrJH0eX3P/PfWVbuZxnpdxK31N5/TXqbmNe/I4H1uuNeVqcFw3j+vzg7x5Po9H9f3SrrVTH3vXX5ybhjj+9yKWUWwGr/8SC/KvjmG1rY6d+hmvz/9KHc/2XlrMVZmPTnzL2K9t5DWrmcfc5qqBKifGc6Lc78Us92neovx+Nt47xhfd12lfp08PSbGK8ztfa+N63fv/H5pjkre2O3fkXb0/yptRdH59v44fBsf1YnZ7HHlemnvgDk1/dt5XnThMfa7PzcdG/X/Y1O9b91seS3PhYG3956o1KRjL8p5LQ+jNTY77so0oHwfR91R9b4/nNO31YlbneJiLL4p3fa1ha6Z2Hnew5udDroI56OT1U3q5+i9j96Sba1GO+7iVvrY5lDyTq03MUrI250/XaDqZ75/5/Pj3tdevqdmO+W7v+VdIeR61V9/7bZ79vvxr5qd3z0fz+BPyb1T1cxzb1KeNnIvnuPS5imMe8+vzop9vqZ/BfC5N/bpxzFe7eZ8v8yD3tZeDzf58btNm9ftZtr5vxnwLzp+u0eZifc/Fc91fW267J7c6x9axXm4P30PrMa0LyN+sdxNPHk3+TgJE9i1OzyRFHuOjJ/8FOelXIXp44Us3Vnxz/3XPL27iumHK2Wrd+WV5vLlef6kn4/HwPPwR0Rr8xHrx+u+8/AvTS9vcw3f/l/oDa+Y/8dT65rv9luh77+HCxh3/PnnalBePr1/le+GluSFXv5Y19Qb/DvpS8u+Fnhz/U2vtX5Diu/4d/YmY/7N4R/3+KuN6eb2f36iAfHshf+QfYHeds2vC/SPyK/X+n7SH4mbB3OAXp68U/SNz9HvyOOXP9+SAX6S+Uvdphkfi9iUFku/KPd/9X+n3r5n/yFNj992+rbf2PBa3f7omTHnx+PqlgPzzWFNv8e+gryT/Xsm/e75U+ODM4KF/w/zDteFL/o3VUeXQ2xSQewvN2n3/cJzavPOGSedsTUbqQ3kUfO8amP5Rns977NvqlxnjWM3NlJy9+b1v7ktbQt3zWB6n+yNt/2RxfHfj4l2tW+Vej2P68/J4HM+6v+nL8ft+GSnXvzMP8y8I6Ty/SKVcvGcNzvf/ze/pLMf71etEur/+0S9MK4+tmb77K39gzfxWefxp27/O+W5fu/t7L693e/PukX+fPOXZ++Ir1nO5+hrW1Ac99p0u/yry7x/w755XGe/fdS7ldaDzb5uUy3tjl+dp77+TnpKv9S9ujOAe/PYCcllkJPYftFrY0va3vyD4kVb/CBq37yhufa3lL8zT9k++HPlyP2YNXv7y/Pvurz/nD6yZ/Hy/6nvv2SJM/q5QMHtT1lS+k/zjx1gX46fthxWf5t9NvvF3krd6BzIAAAAAAO9DARkAAAAAgJACMgAAAAAAIQVkAAAAAABCv7SAvOOvIPqDEAAAAAAAm5oC8ufpsPrLhHGBtf4Lhht/bbP+y5y3/mJg/Vfho+Nv/rVPBWQAAAAAgGetC8jn47qgmgu16yJrKR4fL+eyZyo6t0Xk8zEq7m5oirrny3EsEB/LlUbjvnWbpeh9PUwBGQAAAADgWTdeYZELscsCbi68rmq6+bi2+HxH8XgwFZzrou+udup+KiADAAAAADzrywrIUzF4fdAN6WnjpqC7q9C7o4Cc25mL0Yt269d23NVtAAAAAIBfarOAnAqr11dVFOnVFPUrLJbHdYrBW8LC9Ch6jUWtvl5dQM5tLPs4F5TX/bz7tRsAAAAAAL9UU0BOBdS8bRRtV0/t1q+KmIvBuZBbjguK0bNuAbl+urhWrrEs+i4LyOXz6tqlgNy0e+t6AAAAAAB/w/YrLMI/ohc8EZyPm3fNT/eun+TdfLr3oQJyebK4Pu9aQD71rpmvFz0lPfWzLooDAAAAAPwxN96BPNZZ16+n6L3WYrW/V5zdKNqWz9o6cfwKi+sT0FFBujx1nLat63ULyFtPSwMAAAAA/AE3C8jp6eJrkbb7dO7quFT07RWDw4Ju97N2/1w8Dp9KHl2fQD7nY5t2PYEMAAAAALDp7ieQe0/nro9LBdx7irblnKZwWxWwt9so1m2lPlcF7dxOW4TeKnIDAAAAAPwdiwLyWHStCsPRO5Cjwmt0XN53PSwXdZti9KI43LTTe/q4LWCv1cXocu22EH2rjwAAAAAAf1X1BHIq2I5F1bQtCq4r9XHR6yoGiyLttFVPFzcF5FEuIpetfhL4+u7jaCtt1QXkUSkO5zbnJ5nP8/60KR4DAAAAAIxuvwMZAAAAAIA/SQEZAAAAAICQAjIAAAAAACEFZAAAAAAAQgrIAAAAAACEFJABAAAAAAgpIAMAAAAAEFJABgAAAAAgdGcB+fNyOnxcPg6n4b++xvk4tP9xvJzzzwAAAAAAfA8FZAAAAAAAQgrIAAAAAACEFJABAAAAAAg1BeTP0+Hy8TEWcdN2OC1LxYsC8ufpclgc93GMSr75+HJMXXiu2hivpYAMAAAAAPAe1gXk83FdMB5+Hgu719rwoiC8LAbn41bnluLwsrA87DuVH4NzrsVrBWQAAAAAgO924xUWuWA8F4FLAbkt8Kbib9m/eFJ5+rnW+7zfPgAAAAAA/9ZGAfl8OU5PAy8LvRuF4emJ4sMlPVCczl2//mIhP50cfe4VFgAAAAAA72FVQF6//3gs4tYF41sF5Py6i1wgDl+LPNr4XAEZAAAAAOA9XAvI4VPB9xaQ8xPIG08YTzyBDAAAAADw9q4F5OUTxLP8Gou6gBwUeKfC755C8yS32zyCXF6boYAMAAAAAPDdFq+wqIu6pVi8LAQv9i2Kv+XVF6t6cC5Ir4rEn6fLKf9Yzlk+hZyePh43BWQAAAAAgO+2/iN6peibt+O5fpL4+vN59b7kzvuO86sq5uOqJ5LX71xObXiFBQAAAADAe1gXkAEAAAAAIFNABgAAAAAgpIAMAAAAAEBIARkAAAAAgJACMgAAAAAAIQVkAAAAAABCCsgAAAAAAIQUkAEAAAAACD1YQD5fjh8fl49xO5wun3nvbZ+X0+HecwAAAAAA+A4PFJCfKQIrIAMAAAAA/BQPFJDT08eH0yMlYAVkAAAAAICfQgEZAAAAAIBQW0D+PF0O5f3G1TuOP0+H6/68rQrJ52P12bkqGC8KyM2xSsoAAAAAAO9kXUDOxeNrMTd6Yjh+ArkUl4/nvGNwPuYCcV1AHvctDkzHHS5qyAAAAAAA72NRQO68XmJ6UnhZ3I0KyGnfsiic5P1NAfk4fLLQFK4BAAAAAPhu1wJyr4ib919rw0EBOb+OoqkfN0XpTpE6LEoDAAAAAPCdmgLy9HqJYLsWd3sF5OgVFPcVkNsnmAEAAAAA+C5NAfl2DffrnkBWQAYAAAAAeB/tO5BvFnGDAvKN118oIAMAAAAA/DyLAvIgP0ncFIdXBd+ggDw4Hz+qp5BzsVgBGQAAAADgR1oXkEe5iDxvnWJv87TxoBSR0za+E7kuGCsgAwAAAAD8FG0B+aVywVhhGAAAAADgx/naAvLuP8wHAAAAAMC7eVkBeXx9xbpQnF9L0byuAgAAAACAn+CFTyAv/mhe2Tx6DAAAAADwY33xO5ABAAAAAPipFJABAAAAAAgpIAMAAAAAEFJABgAAAAAgtCogn4/jH787XuY/fXc+Tn8Mb/5beJ+ny2H4+XD6zDsAAAAAAPitFJABAAAAAAjd9woLBWQAAAAAgD9DARkAAAAAgNDTr7D4PB2mYz4Op4uyMgAAAADA7/FcATl//jEfAAAAAADAb/F4ATn/t+IxAAAAAMDv9GAB+XQ5jsVjr60AAAAAAPi1HiogT6+t+Dhc/C09AAAAAIDf68EnkM+X00ERGQAAAADgN3vij+id02sslscDAAAAAPBrPFFAvv7sXcgAAAAAAL/PcwXkUSkie50FAAAAAMCvsiogN6YCssIwAAAAAMBftFlA/jwd1k8kAwAAAADwZ2wUkPMfyZvfXwEAAAAAwF/SFpDze4+nTfEYAAAAAODP2n4HMgAAAAAAf5YCMgAAAAAAIQVkAAAAAABCCsgAAAAAAIRWBeTzcfzjeceLP50HAAAAAIACMgAAAAAAIQVkAAAAAABCCsgAAAAAAIS2C8jn4/Dzx+V4/rycDuNneTucLp/5kNF83ufpcijHTOeNn1bnpp0AAAAAALy5XQXkj4/D5VQqxqVIvCgEp/OGbS4sr4vG86H53MPcGAAAAAAA72pXAbku+NbHpZ8XReZRKT6vnjjOheXqCWYAAAAAAN7PzldY5J+zz9MhKCAvzhvlp43rc6djFZABAAAAAN7eEwXk6xPHCsgAAAAAAL+PAjIAAAAAACEFZAAAAAAAQgrIAAAAAACEFJABAAAAAAitCsgAAAAAAFAoIAMAAAAAEFJABgAAAAAgpIAMAAAAAEBIARkAAAAAgJACMgAAAAAAIQVkAAAAAABCCsgAAAAAAIQUkAEAAAAACCkgAwAAAAAQUkAGAAAAACCkgAwAAAAAQCgoIJ8vx4+Py8diO5w+82fZ+TjtP57H/1wee7jUh47Wxxwv58/T5TD8d9MuAAAAAABvY11Ajgq7ed/HWC0ucgF53K67Py+nQy4Q5z3xvmuBWgEZAAAAAOB9LQrIudh7OA3/tfZ5OlxWTxfnAnJbAE7F4Xn/4knlle75AAAAAAC8i2sBeeu1EvmzuRDcKwyXInT+IL26Yvn0ceYVFgAAAAAAb68pILdF4UFd8L1VQM5PMU8F5OCJZgVkAAAAAID35wlkAAAAAABCd7wDeVEI7r3DuCo0N+9OztJ+BWQAAAAAgHe2KCAPosJw9LRwPm5dHE5/QG9dgA725fYUkAEAAAAA3tu6gDxaFHjL1ryqYn6FRS4Qly1633EpIs/b8XL2CgsAAAAAgLfXFpD36L4DeScFZAAAAACAt6eADAAAAABASAEZAAAAAICQAjIAAAAAAKHHCsgAAAAAAPx6CsgAAAAAAIQUkAEAAAAACCkgAwAAAAAQUkAGAAAAACD0kgLy5+lw+fg4Xs75ZwAAAAAAfr6XFJDPxw8FZAAAAACAX0YBGQAAAACA0KqAPBeCz8fhf5dF4c/L6TD+nLfDadgz7j5dDmXfvCkkAwAAAAD8BkEBedhKgXiSi8fHRVn483Q5LX70BDIAAAAAwO8TFJAPl9O1ejw/ZXxY7VxTQAYAAAAA+H3iV1jkn5Pz5Ti9mqIqLC8oIAMAAAAA/D47CsiD6l3Hy7dZjBSQAQAAAAB+n30F5Fl5Gnn9SgsFZAAAAACA3+fOAvKo/aN6CsgAAAAAAL/P7QLy5+lyXL38OD2FvHwC+fN0GM7rvyMZAAAAAICfZ9cTyKlAPH6WtmXxOMlPJU+fexIZAAAAAOA3WBWQAQAAAACgUEAGAAAAACCkgAwAAAAAQEgBGQAAAACAkAIyAAAAAAAhBWQAAAAAAEIKyAAAAAAAhBSQAQAAAAAIKSADAAAAABBSQAYAAAAAIKSADAAAAABASAEZAAAAAIDQooD8eTkdPi4fh9PwX0vny/Hj43I4jXt7xwyfnA6Xj4/j5Xw+Dv/7cTme8wejz9PlMOz7WO9Mba32AQAAAADwLu4sIJdC8eGSf8yWxeD18ZNcVF63nY5TPwYAAAAAeE93F5DL08SrAnHel4rBbTvn4/jzYThmUXieisrHoXUAAAAAAN7R/QXk4LjpqeT657k4nI4/ntdPHNfnAAAAAADwXh4oIMcF4u4TydN/p2OnJ5HTzvYcAAAAAADeykMF5LLvWiCO34k8nTO+qqI8djz+99T+eH59DgAAAAAA72RRQM5PCNcF5Oidx4PyNPH0NHIpEC+Uz8f/nc8txeaT9x8DAAAAALy7VQF5ekJ4VSzOTyUHBeR07OFyGD4P6seLz5dPGucnk4d9UdEZAAAAAID3sS4gD9L7jVPReCwAnz6jV1iM0v7+k8T58+qJ5tK++jEAAAAAwHtrCsgAAAAAADBSQAYAAAAAIKSADAAAAABASAEZAAAAAICQAjIAAAAAACEFZAAAAAAAQgrIAAAAAACEFJABAAAAAAgpIAMAAAAAEFJABgAAAAAgpIAMAAAAAEBIARkAAAAAgNBcQP48HS4fHx+X4znvmJwvx2Hfx+F0+d9x+N+P47Cncj7O552nY4JtOP8zHw4AAAAAwM+weAL583I6jAXfa5E4FYTzz4tC8dJ0TKdAnIrSh8tJ9RgAAAAA4MdZv8Li83Q5fHxcDmPFN//3tWCcn0ZeVZDTvun42rItAAAAAAB+nOYdyOmp4ePlOD5ZXD1uXD671pTHp5KD11qUp5m9ugIAAAAA4McK/oheftI4KgxXTyVPr6+o32kxiN+nDAAAAADAT9J5AnksIEfF4fxk8bQ/FZrbQ1KROSosAwAAAADwc4TvQE714fiP5s2vsei8vmL1h/cAAAAAAPixFgXk+r3F+eemGDw+eXy4HIbPmj+Q1yk6AwAAAADw88wF5PTk8OGyqgl3XkcRHptfaTG//mK1eSIZAAAAAOCnCf6I3m1TAXl+UhkAAAAAgN/ogQJy54/nAQAAAADwq9xdQPb0MQAAAADA37C7gPx5OnifMQAAAADAH/LQO5ABAAAAAPj9FJABAAAAAAgpIAMAAAAAEFJABgAAAAAg9EsLyJ+X0+Hj8nE4Df/V8Xm6HD4+LodT9wgAAAAAgD+tKSB/ng6Xj4+PeYsLrLlAOx93uHTrsOfj4rhh2yrqjnJhd/P4us3m+grIAAAAAADPWheQz8d1QTUXatdF1lI8Pl7OZc9UdG6LyOdjVNzd0BR1z5fjWCA+liuNxn3rNkvR+3qYAjIAAAAAwLNuvMIiF2KXBdxceF3VdPNxbfH5juLxYCo410XfXe3U/VRABgAAAAB41pcVkKdi8PqgG9LTxk1Bd1ehd0cBObczF6MX7dav7bir2wAAAAAAv9RmATkVVq+vqijSqynqV1gsj+sUg7eEhelR9BqLWn29uoCc21j2cS4or/t592s3AAAAAAB+qaaAnAqoedso2q6e2q1fFTEXg3MhtxwXFKNn3QJy/XRxrVxjWfRdFpDL59W1SwG5affW9QAAAAAA/obtV1iEf0QveCI4Hzfvmp/uXT/Ju/l070MF5PJkcX3etYB86l0zXy96SnrqZ10UBwAAAAD4Y268A3mss65fT9F7rcVqf684u1G0LZ+1deL4FRbXJ6CjgnR56jhtW9frFpC3npYGAAAAAPgDbhaQ09PF1yJt9+nc1XGp6NsrBocF3e5n7f65eBw+lTy6PoF8zsc27XoCGQAAAABg091PIPeezl0flwq49xRtyzlN4bYqYG+3UazbSn2uCtq5nbYIvVXkBgAAAAD4OxYF5LHoWhWGo3cgR4XX6Li873pYLuo2xehFcbhpp/f0cVvAXquL0eXabSH6Vh8BAAAAAP6q6gnkVLAdi6ppWxRcV+rjotdVDBZF2mmrni5uCsijXEQuW/0k8PXdx9FW2qoLyKNSHM5tzk8yn+f9aVM8BgAAAAAY3X4HMgAAAAAAf5ICMgAAAAAAgcvl/3TAcEwNwjW1AAAAAElFTkSuQmCC" alt="" />
总结
使用老式读取,返回的是一个包含每行数据的数组,而yield方式则返回的是一个迭代器,而不会以真正的数组返回。
这种方法的优点是显而易见的,它可以让你在处理大数据集合的时候不用一次性的加载到内存中,甚至你可以处理无限大的数据流。
手机扫一扫
移动阅读更方便
你可能感兴趣的文章