这是写在前面的话:在开发中的时候,应该、可能、或许会看到有趣的注释
遇到类似的注释能让开发更加的有乐趣,我提倡程序猿继续传承下去这个美好优良传统
比如我的注释:
/**
* 描述:点聚合 <br>
* 作者: kimball <br>
* E-mail: kimballlu@foxmail.com <br>
* 日期: 2016-12-21 下午2:55:10 <br>
*/
public class Points implements Serializable {
private static final long serialVersionUID = 1L;
/**
**************************************************************
* *
* .=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-. *
* | ______ | *
* | .-" "-. | *
* | / \ | *
* | _ | | _ | *
* | ( \ |, .-. .-. ,| / ) | *
* | > "=._ | )(__/ \__)( | _.=" < | *
* | (_/"=._"=._ |/ /\ \| _.="_.="\_) | *
* | "=._"(_ ^^ _)"_.=" | *
* | "=\__|IIIIII|__/=" | *
* | _.="| \IIIIII/ |"=._ | *
* | _ _.="_.="\ /"=._"=._ _ | *
* | ( \_.="_.=" `--------` "=._"=._/ ) | *
* | > _.=" "=._ < | *
* | (_/ \_) | *
* | | *
* ‘-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=‘ *
* *
* LASCIATE OGNI SPERANZA, VOI CH‘ENTRATE *
**************************************************************
*/
/**
* 请不要尝试修改属性lng和lat为别的数据类型,相信我,改了之后,你会后悔的。
* 至于原因,创建的时候我应该知道,现在只剩下上帝知道
*/
private Integer id;
private String markerId; // 标识符
private double lng;
private double lat;
private String type;
private Integer status = 0; // 覆盖物状态:0未添加,1已添加,2已添加并且是已发送的覆盖物 默认值:0
private List<Points> list = new ArrayList<Points>();
......
再或者在结尾处加
/* * ┏┓ ┏┓ *┏┛┻━━━┛┻┓ *┃ ┃ *┃ ━ ┃ *┃ ┳┛ ┗┳ ┃ *┃ ┃ *┃ ┻ ┃ *┃ ┃ *┗━┓ ┏━┛ * ┃ ┃神兽保佑 * ┃ ┃代码无BUG! * ┃ ┗━━━┓ * ┃ ┣┓ * ┃ ┏┛ * ┗┓┓┏━┳┓┏┛ * ┃┫┫ ┃┫┫ * ┗┻┛ ┗┻┛ * */
下面再来看看网络上的资源:
1、来自菜鸟的注释
//I am not sure if we need this, but too scared to delete. //译:个人不确认是不是需要,但是实在不敢删除
2、来自正直程序员的注释
// I am not responsible of this code. // They made me write it, against my will. //译:个人不负责这块代码的质量,是他们逼我写的
3、很神奇的代码/注释
//I am not sure why this works but it fixes the problem. //译:不知道为什么,但是问题就这样解决了
4、中华柴犬
/**
* .,:,,, .::,,,::.
* .::::,,;;, .,;;:,,....:i:
* :i,.::::,;i:. ....,,:::::::::,.... .;i:,. ......;i.
* :;..:::;::::i;,,:::;:,,,,,,,,,,..,.,,:::iri:. .,:irsr:,.;i.
* ;;..,::::;;;;ri,,,. ..,,:;s1s1ssrr;,.;r,
* :;. ,::;ii;:, . ................... .;iirri;;;,,;i,
* ,i. .;ri:. ... ............................ .,,:;:,,,;i:
* :s,.;r:... ....................................... .::;::s;
* ,1r::. .............,,,.,,:,,........................,;iir;
* ,s;........... ..::.,;:,,. ...............,;1s
* :i,..,. .,:,,::,. .......... .......;1,
* ir,....:rrssr;:, ,,.,::. .r5S9989398G95hr;. ....,.:s,
* ;r,..,s9855513XHAG3i .,,,,,,,. ,S931,.,,.;s;s&BHHA8s.,..,..:r:
* :r;..rGGh, :SAG;;G@BS:.,,,,,,,,,.r83: hHH1sXMBHHHM3..,,,,.ir.
* ,si,.1GS, sBMAAX&MBMB5,,,,,,:,,.:&8 3@HXHBMBHBBH#X,.,,,,,,rr
* ;1:,,SH: .A@&&B#&8H#BS,,,,,,,,,.,5XS, 3@MHABM&59M#As..,,,,:,is,
* .rr,,,;9&1 hBHHBB&8AMGr,,,,,,,,,,,:h&&9s; r9&BMHBHMB9: . .,,,,;ri.
* :1:....:5&XSi;r8BMBHHA9r:,......,,,,:ii19GG88899XHHH&GSr. ...,:rs.
* ;s. .:sS8G8GG889hi. ....,,:;:,.:irssrriii:,. ...,,i1,
* ;1, ..,....,,isssi;, .,,. ....,.i1,
* ;h: i9HHBMBBHAX9: . ...,,,rs,
* ,1i.. :A#MBBBBMHB##s ....,,,;si.
* .r1,.. ,..;3BMBBBHBB#Bh. .. ....,,,,,i1;
* :h;.. .,..;,1XBMMMMBXs,.,, .. :: ,. ....,,,,,,ss.
* ih: .. .;;;, ;;:s58A3i,.. ,. ,.:,,. ...,,,,,:,s1,
* .s1,.... .,;sh, ,iSAXs;. ,. ,,.i85 ...,,,,,,:i1;
* .rh: ... rXG9XBBM#M#MHAX3hss13&&HHXr .....,,,,,,,ih;
* .s5: ..... i598X&&A&AAAAAA&XG851r: ........,,,,:,,sh;
* . ihr, ... . .. ........,,,,,;11:.
* ,s1i. ... ..,,,..,,,.,,.,,.,.. ........,,.,,.;s5i.
* .:s1r,...................... ..............;shs,
* . .:shr:. .... ..............,ishs.
* .,issr;,... ...........................,is1s;.
* .,is1si;:,....................,:;ir1sr;,
* ..:isssssrrii;::::::;;iirsssssr;:..
* .,::iiirsssssssssrri;;:.
*/
/**
* ii. ;9ABH,
* SA391, .r9GG35&G
* &#ii13Gh; i3X31i;:,rB1
* iMs,:,i5895, .5G91:,:;:s1:8A
* 33::::,,;5G5, ,58Si,,:::,sHX;iH1
* Sr.,:;rs13BBX35hh11511h5Shhh5S3GAXS:.,,::,,1AG3i,GG
* .G51S511sr;;iiiishS8G89Shsrrsh59S;.,,,,,..5A85Si,h8
* :SB9s:,............................,,,.,,,SASh53h,1G.
* .r18S;..,,,,,,,,,,,,,,,,,,,,,,,,,,,,,....,,.1H315199,rX,
* ;S89s,..,,,,,,,,,,,,,,,,,,,,,,,....,,.......,,,;r1ShS8,;Xi
* i55s:.........,,,,,,,,,,,,,,,,.,,,......,.....,,....r9&5.:X1
* 59;.....,. .,,,,,,,,,,,... .............,..:1;.:&s
* s8,..;53S5S3s. .,,,,,,,.,.. i15S5h1:.........,,,..,,:99
* 93.:39s:rSGB@A; ..,,,,..... .SG3hhh9G&BGi..,,,,,,,,,,,,.,83
* G5.G8 9#@@@@@X. .,,,,,,..... iA9,.S&B###@@Mr...,,,,,,,,..,.;Xh
* Gs.X8 S@@@@@@@B:..,,,,,,,,,,. rA1 ,A@@@@@@@@@H:........,,,,,,.iX:
* ;9. ,8A#@@@@@@#5,.,,,,,,,,,... 9A. 8@@@@@@@@@@M; ....,,,,,,,,S8
* X3 iS8XAHH8s.,,,,,,,,,,...,..58hH@@@@@@@@@Hs ...,,,,,,,:Gs
* r8, ,,,...,,,,,,,,,,..... ,h8XABMMHX3r. .,,,,,,,.rX:
* :9, . .:,..,:;;;::,.,,,,,.. .,,. ..,,,,,,.59
* .Si ,:.i8HBMMMMMB&5,.... . .,,,,,.sMr
* SS :: h@@@@@@@@@@#; . ... . ..,,,,iM5
* 91 . ;:.,1&@@@@@@MXs. . .,,:,:&S
* hS .... .:;,,,i3MMS1;..,..... . . ... ..,:,.99
* ,8; ..... .,:,..,8Ms:;,,,... .,::.83
* s&: .... .sS553B@@HX3s;,. .,;13h. .:::&1
* SXr . ...;s3G99XA&X88Shss11155hi. ,;:h&,
* iH8: . .. ,;iiii;,::,,,,,. .;irHA
* ,8X5; . ....... ,;iihS8Gi
* 1831, .,;irrrrrs&@
* ;5A8r. .:;iiiiirrss1H
* :X@H3s....... .,:;iii;iiiiirsrh
* r#h:;,...,,.. .,,:;;;;;:::,... .:;;;;;;iiiirrss1
* ,M8 ..,....,.....,,::::::,,... . .,;;;iiiiiirss11h
* 8B;.,,,,,,,.,..... . .. .:;;;;iirrsss111h
* i@5,:::,,,,,,,,.... . . .:::;;;;;irrrss111111
* 9Bi,:,,,,...... ..r91;;;;;iirrsss1ss1111
*/
5、程序员的烦恼
//用户要求不使用账号密码进行登录,绝属无脑行为
//这是我辛辛苦苦写的框架,如果你没有得到我的真传,请不要修改代码,求求你了!
// 这里还没有完善,先去下WC,如果你看到了,可以帮忙补上相关代码,谢谢!
//日蛋了,老板又加进度了,打心里诅咒他。
(a != b) ? b : a //和老婆意见不一致的时候听她的,意见一致的时候听我的。
for(int i = 0;i<100;i++){
save();//save the document for 100 times to ensure it has been saved successfully.
}
6、一位程序员的简历中的秘密
<!-- <H4>Objective:</H4> A large office, good pay, and very little work. Frequent expense-account trips to exotic lands would be a plus. -->
7、贝尔实验室的Unix系统第六发行版,并在《Lions’ Commentary on UNIX 6th Edition, with Source Code》这本书中的注释
/*
* If the new process paused because it was
* swapped out, set the stack level to the last call
* to savu(u_ssav).
* 如果新进程因为被换出而暂停,则设置其栈级别为last call,并传至sayu(u_ssay)
* This means that the return
* which is executed immediately after the call to aretu
* actually returns from the last routine which did
* the savu.
* 这样做的目的是确保aretu方法被调用后立即返回的值实质上是上一次调用sayu的方法的返回值
* You are not expected to understand this.
* 我们并不指望你能看懂这段话
*/
if(rp->p_flag&SSWAP) {
rp->p_flag =& ~SSWAP;
aretu(u.u_ssav);
}
8、好心的提醒
IF TIMEDIFF >=5 SAY "THE SYSTEM IS FUCKED, PLEASE BEAR WITH US" //如果系统SB了,请和我们一起忍受 SLEEP(10) ENDIF
// // 敬爱的维护者: // // 如果你在优化本例程函数时遇到麻烦,请自增下面的计数器 // 以提醒下一个维护者: // // total_hours_wasted_here = 16 //
// Magic. Do not touch.
译:神奇的代码,不要改动
来自Vinoth Kumar M回复一篇文章中,他所写的注释:
// your computer is not cooperating. Kick your CPU cabinet and try again!
原文:
Long ago I wrote a comment like “your computer is not cooperating. Kick your CPU cabinet and try again!”. Few days later I got call from client that their computer stopped working after kicking the cpu cabinet. I stopped commenting like that later.
译:很久以前,我写了一个评论“如你的电脑不合作,就踢你的CPU电脑机箱,然后重试!“。 几天后,我得到客户的电话,他们踢了cpu机箱后,电脑停止了运行
9、图案注释
/** * 1只羊 == one sheep * 2只羊 == two sheeps * 3只羊 == three sheeps * 4只羊 == four sheeps * 5只羊 == five sheeps * 6只羊 == six sheeps * 7只羊 == seven sheeps * 8只羊 == eight sheeps * 9只羊 == nine sheeps * 10只羊 == ten sheeps * 11只羊 == eleven sheeps * 12只羊 == twelve sheeps * 13只羊 == thirteen sheeps * 14只羊 == fourteen sheeps * 15只羊 == fifteen sheeps * 16只羊 == sixteen sheeps * 17只羊 == seventeen sheeps * 18只羊 == eighteen sheeps * 19只羊 == nineteen sheeps * 20只羊 == twenty sheeps * 21只羊 == twenty one sheeps * 22只羊 == twenty two sheeps * 23只羊 == twenty three sheeps * 24只羊 == twenty four sheeps * 25只羊 == twenty five sheeps * 26只羊 == twenty six sheeps * 27只羊 == twenty seven sheeps * 28只羊 == twenty eight sheeps * 29只羊 == twenty nine sheeps * 30只羊 == thirty sheeps * 现在瞌睡了吧,好了,不要再改下面的代码了,睡觉咯~~ */
/**
* http://www.flvcd.com/
* .--, .--,
* ( ( \.---./ ) )
* ‘.__/o o\__.‘
* {= ^ =}
* > - <
* / * // \ * //| . |\ * "‘\ /‘"_.-~^`‘-.
* \ _ /--‘ `
* ___)( )(___
* (((__) (__))) 高山仰止,景行行止.虽不能至,心向往之。
*/
/** * 頂頂頂頂頂頂頂頂頂 頂頂頂頂頂頂頂頂頂 * 頂頂頂頂頂頂頂 頂頂 * 頂頂 頂頂頂頂頂頂頂頂頂頂頂 * 頂頂 頂頂頂頂頂頂頂頂頂頂頂 * 頂頂 頂頂 頂頂 * 頂頂 頂頂 頂頂頂 頂頂 * 頂頂 頂頂 頂頂頂 頂頂 * 頂頂 頂頂 頂頂頂 頂頂 * 頂頂 頂頂 頂頂頂 頂頂 * 頂頂 頂頂頂 * 頂頂 頂頂 頂頂 頂頂 * 頂頂頂頂 頂頂頂頂頂 頂頂頂頂頂 * 頂頂頂頂 頂頂頂頂 頂頂頂頂 */
/** * http://www.freebuf.com/ * _.._ ,------------. * ,‘ `. ( We want you! ) * / __) __` \ `-,----------‘ * ( (`-`(-‘) ) _.-‘ * /) \ = / ( * /‘ |--‘ . * ( ,---| `-.)__` * )( `-.,--‘ _`-. * ‘/,‘ ( Uu", * (_ , `/,-‘ ) * `.__, : `-‘/ /`--‘ * | `--‘ | * ` `-._ / * \ ( * /\ . \. freebuf * / |` \ ,- * / \| .) / * ( ,‘|\ ,‘ : * | \,`.`--"/ } * `,‘ \ |,‘ / * / "-._ `-/ | * "-. "-.,‘| ; * / _/["---‘""] * : / |"- ‘ * ‘ | / * ` | */
/** * ,%%%%%%%%, * ,%%/\%%%%/\%% * ,%%%\c "" J/%%% * %. %%%%/ o o \%%% * `%%. %%%% _ |%%% * `%% `%%%%(__Y__)%%‘ * // ;%%%%`\-/%%%‘ * (( / `%%%%%%%‘ * \\ .‘ | * \\ / \ | | * \\/ ) | | * \ /_ | |__ * (___________))))))) 攻城湿 * * _ _ * __ _(_)_ _(_) __ _ _ __ * \ \ / / \ \ / / |/ _` |‘_ \ * \ V /| |\ V /| | (_| | | | | * \_/ |_| \_/ |_|\__,_|_| |_| */
/** *_______________#########_______________________ *______________############_____________________ *______________#############____________________ *_____________##__###########___________________ *____________###__######_#####__________________ *____________###_#######___####_________________ *___________###__##########_####________________ *__________####__###########_####_______________ *________#####___###########__#####_____________ *_______######___###_########___#####___________ *_______#####___###___########___######_________ *______######___###__###########___######_______ *_____######___####_##############__######______ *____#######__#####################_#######_____ *____#######__##############################____ *___#######__######_#################_#######___ *___#######__######_######_#########___######___ *___#######____##__######___######_____######___ *___#######________######____#####_____#####____ *____######________#####_____#####_____####_____ *_____#####________####______#####_____###______ *______#####______;###________###______#________ *________##_______####________####______________ */
/** * ,s555SB@@& * :9H####@@@@@Xi * 1@@@@@@@@@@@@@@8 * ,8@@@@@@@@@B@@@@@@8 * :B@@@@X3hi8Bs;B@@@@@Ah, * ,8i r@@@B: 1S ,M@@@@@@#8; * 1AB35.i: X@@8 . SGhr ,A@@@@@@@@S * 1@h31MX8 18Hhh3i .i3r ,A@@@@@@@@@5 * ;@&i,58r5 rGSS: :B@@@@@@@@@@A * 1#i . 9i hX. .: .5@@@@@@@@@@@1 * sG1, ,G53s. 9#Xi;hS5 3B@@@@@@@B1 * .h8h.,A@@@MXSs, #@H1: 3ssSSX@1 * s ,@@@@@@@@@@@@Xhi, r#@@X1s9M8 .GA981 * ,. rS8H#@@@@@@@@@@#HG51;. .h31i;9@r .8@@@@BS;i; * .19AXXXAB@@@@@@@@@@@@@@#MHXG893hrX#XGGXM@@@@@@@@@@MS * s@@MM@@@hsX#@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@&, * :GB@#3G@@Brs ,1GM@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@B, * .hM@@@#@@#MX 51 r;iSGAM@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@8 * :3B@@@@@@@@@@@&9@h :Gs .;sSXH@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@: * s&HA#@@@@@@@@@@@@@@M89A;.8S. ,r3@@@@@@@@@@@@@@@@@@@@@@@@@@@r * ,13B@@@@@@@@@@@@@@@@@@@5 5B3 ;. ;@@@@@@@@@@@@@@@@@@@@@@@@@@@i * 5#@@#&@@@@@@@@@@@@@@@@@@9 .39: ;@@@@@@@@@@@@@@@@@@@@@@@@@@@; * 9@@@X:MM@@@@@@@@@@@@@@@#; ;31. H@@@@@@@@@@@@@@@@@@@@@@@@@@: * SH#@B9.rM@@@@@@@@@@@@@B :. 3@@@@@@@@@@@@@@@@@@@@@@@@@@5 * ,:. 9@@@@@@@@@@@#HB5 .M@@@@@@@@@@@@@@@@@@@@@@@@@B * ,ssirhSM@&1;i19911i,. s@@@@@@@@@@@@@@@@@@@@@@@@@@S * ,,,rHAri1h1rh&@#353Sh: 8@@@@@@@@@@@@@@@@@@@@@@@@@#: * .A3hH@#5S553&@@#h i:i9S #@@@@@@@@@@@@@@@@@@@@@@@@@A. * * * */
/** _ * _._ _..._ .-‘, _.._(`)) * ‘-. ` ‘ /-._.-‘ ‘,/ * ) \ ‘. * / _ _ | * | a a / | * \ .-. ; * ‘-(‘‘ ).-‘ ,‘ ; * ‘-; | .‘ * \ \ / * | 7 .__ _.-\ * | | | ``/ /` / * /,_| | /,_/ / * /,_/ ‘`-‘ */
/** * ━━━━━━神兽出没━━━━━━ * ┏┓ ┏┓ * ┏┛┻━━━┛┻┓ * ┃ ┃ * ┃ ━ ┃ * ┃ ┳┛ ┗┳ ┃ * ┃ ┃ * ┃ ┻ ┃ * ┃ ┃ * ┗━┓ ┏━┛ * ┃ ┃ 神兽保佑 * ┃ ┃ 代码无bug * ┃ ┗━━━┓ * ┃ ┣┓ * ┃ ┏┛ * ┗┓┓┏━┳┓┏┛ * ┃┫┫ ┃┫┫ * ┗┻┛ ┗┻┛ * ━━━━━━感觉萌萌哒━━━━━━ */
/** * ┏┓ ┏┓+ + * ┏┛┻━━━┛┻┓ + + * ┃ ┃ * ┃ ━ ┃ ++ + + + * ████━████ ┃+ * ┃ ┃ + * ┃ ┻ ┃ * ┃ ┃ + + * ┗━┓ ┏━┛ * ┃ ┃ * ┃ ┃ + + + + * ┃ ┃ * ┃ ┃ + 神兽保佑 * ┃ ┃ 代码无bug * ┃ ┃ + * ┃ ┗━━━┓ + + * ┃ ┣┓ * ┃ ┏┛ * ┗┓┓┏━┳┓┏┛ + + + + * ┃┫┫ ┃┫┫ * ┗┻┛ ┗┻┛+ + + + */
/** * ┏┓ ┏┓ * ┏┛┻━━━┛┻┓ * ┃ ┃ * ┃ ━ ┃ * ┃ > < ┃ * ┃ ┃ * ┃... ⌒ ... ┃ * ┃ ┃ * ┗━┓ ┏━┛ * ┃ ┃ * ┃ ┃ * ┃ ┃ * ┃ ┃ 神兽保佑 * ┃ ┃ 代码无bug * ┃ ┃ * ┃ ┗━━━┓ * ┃ ┣┓ * ┃ ┏┛ * ┗┓┓┏━┳┓┏┛ * ┃┫┫ ┃┫┫ * ┗┻┛ ┗┻┛ */
/** * .::::. * .::::::::. * ::::::::::: FUCK YOU * ..:::::::::::‘ * ‘::::::::::::‘ * .:::::::::: * ‘::::::::::::::.. * ..::::::::::::. * ``:::::::::::::::: * ::::``:::::::::‘ .:::. * ::::‘ ‘:::::‘ .::::::::. * .::::‘ :::: .:::::::‘::::. * .:::‘ ::::: .:::::::::‘ ‘:::::. * .::‘ :::::.:::::::::‘ ‘:::::. * .::‘ ::::::::::::::‘ ``::::. * ...::: ::::::::::::‘ ``::. * ```` ‘:. ‘:::::::::‘ ::::.. * ‘.:::::‘ ‘:‘````.. */
/** * _ooOoo_ * o8888888o * 88" . "88 * (| -_- |) * O\ = /O * ___/`---‘\____ * . ‘ \\| |// `. * / \\||| : |||// * / _||||| -:- |||||- * | | \\\ - /// | | * | \_| ‘‘\---/‘‘ | | * \ .-\__ `-` ___/-. / * ___`. .‘ /--.--\ `. . __ * ."" ‘< `.___\_<|>_/___.‘ >‘"". * | | : `- \`.;`\ _ /`;.`/ - ` : | | * \ \ `-. \_ __\ /__ _/ .-` / / * ======`-.____`-.___\_____/___.-`____.-‘====== * `=---=‘ * ............................................. * 佛曰:bug泛滥,我已瘫痪! */
/** * 佛曰: * 写字楼里写字间,写字间里程序员; * 程序人员写程序,又拿程序换酒钱。 * 酒醒只在网上坐,酒醉还来网下眠; * 酒醉酒醒日复日,网上网下年复年。 * 但愿老死电脑间,不愿鞠躬老板前; * 奔驰宝马贵者趣,公交自行程序员。 * 别人笑我忒疯癫,我笑自己命太贱; * 不见满街漂亮妹,哪个归得程序员? */
/** * _ooOoo_ * o8888888o * 88" . "88 * (| -_- |) * O\ = /O * ____/`---‘\____ * . ‘ \\| |// `. * / \\||| : |||// * / _||||| -:- |||||- * | | \\\ - /// | | * | \_| ‘‘\---/‘‘ | | * \ .-\__ `-` ___/-. / * ___`. .‘ /--.--\ `. . __ * ."" ‘< `.___\_<|>_/___.‘ >‘"". * | | : `- \`.;`\ _ /`;.`/ - ` : | | * \ \ `-. \_ __\ /__ _/ .-` / / * ======`-.____`-.___\_____/___.-`____.-‘====== * `=---=‘ * * ............................................. * 佛祖保佑 永无BUG */
搞怪的注释能让人心情愉快,怀有更好的心情去code。当然如果公司有严格的代码审查,不一定能通过
反正我是否写搞怪注释,完全取决心情以及天气
本文好多好多内容都是收集自网络、别人的博客,通过自己整理发布的,要是要啥侵犯您的权益的,请联系我删除。
原文:https://www.cnblogs.com/ztf20/p/9110565.html