2019 騫達紝鎴戝洖鏉ヤ簡銆?/p>
涓嶇煡涓嶈涓紝鎴戝叆 PHP 鐨勫潙宸茬粡 3 騫存湁浣欙紝鍏?Go 鐨勫潙涔熷ぇ鍗婂勾浜嗐備綔涓轟笉璇勮涓嶈垝鏈嶆柉鍩烘槦浜猴紝鑷劧瑕佸 Go 鍝佸ご璁鴻凍涓鐣殑銆?/p>
鎬葷殑涓鍙ヨ瘽錛孏o 鐨勪竴浜涚壒鎬х‘瀹炴伆鍒板ソ澶勶紝鐒惰屾洿澶氱殑鍦版柟鍗存槸騫沖焊銆佺箒鐞愩佹潫緙氾紝浠ヨ嚦浜庢垜鎯充笉鍒板畠鏄傚悎鍝簺鍦烘櫙鐨勩?/p>
闈欐佽璦閲岋紝C銆丆++ 鏈夌潃鏄庢樉鐨勯傜敤棰嗗煙錛氫綘瑕佹兂鑰佽佸疄瀹炲啓紼嬪簭錛屼笉鐜╀換浣曡姳鎷涳紝灝辯敤 C 鍚э紝鑷沖皯浣犺兘鎺屾帶涓鍒囷紝瀹炲湪鎯崇帺浣犺繕鏈夊畯榪欎釜澶ф潃鍣紱浣犺鎯崇帺鐐硅姳鎷涳紝閭e氨鐢?C++錛屼唬浠峰氨鏄渶瑕佽嚜韜按騫蟲洿楂橈紝鑳芥帉鎺у埌澶氬ぇ灞傛灝卞啓澶氬ぇ灞傛錛屼笉鎳傜殑涓嶈涓嶆噦瑁呮噦鍘葷敤錛屾諱綋鏉ヨ榪樻槸瀹夊叏鐨勩?/p>
鑴氭湰璇█閲岋紝濡傛灉瑕侀殢渚垮啓鐐逛粈涔堝伐鍏鳳紝python 鍟ョ殑鎸烘柟渚跨殑錛涘啓鐐圭綉緇滅殑錛屽氨鐢ㄤ笘鐣屼笂鏈濂界殑璇█ PHP 鍚с備粈涔堬紵浣犺 Java錛熷疄鍦ㄦ病鍔炴硶錛屼綋閲忓お澶э紝鍏徃瑕佷綘鐢ㄤ綘灝辯敤鍚с備笉榪囧氨鍏舵湰璐ㄨ岃█錛屽叾瀹?Java 鍜屼粖澶╃殑涓昏鈥斺擥o 鏄悓涓綾葷殑銆備笉鏄浠栦滑璇硶鍍忥紝鏄寚搴旂敤鍦烘櫙錛堜笉榪囪繖涓鍩熸嬁 PHP 鍐欐樉鐒朵細鏇寸埥錛夈?/p>
鍡斺斾負浜嗚〃杈懼嚭鐪熷疄鐨勬剰鎬濓紝鎴戞兂鐢ㄨ瘝紼嶅井鐘鍒╃偣錛岃鍏堝仛涓涓嬪績鐞嗗緩璁俱?/p>
鎴戜笉鎬庝箞鎳?Java錛屽氨鎴戞祬钖勭殑浜嗚В鑰岃█錛屽鏋滀綘鐨勫叕鍙搞佸洟闃熸湁寰堝鍌婚鹼紝鐢氳嚦浣犺嚜宸變篃鏄紝涓氬姟涓婂張姝eソ鍙互鐢?Java 鐣岀殑涓浜涚幇鎴愮殑妗嗘灦銆佺粍浠訛紝閭d箞鐢?Java 鑲畾鏄病閿欑殑鍟︺傚畠紜疄鏈変竴縐嶉瓟鍔涳紝璁╀綘鏃犺澶氬偦閫鹼紝涔熺粷瀵瑰啓涓嶅嚭閿欏緱澶氫箞闅愯斀銆佺簿濡欐棤姣旂殑浠g爜錛涘悓鏃惰浣犳棤璁哄鐗涢鹼紝涔熷啓涓嶅嚭澶氫箞綺懼僵緇濅雞銆佽█綆鎰忚祬鐨勪唬鐮併侴o 涔熸湁榪欑鐗硅川錛岀敋鑷蟲湁浜涘湴鏂規瘮璧?Java 鏇存湁榪囦箣鑰屼笉鍙娿備笉淇¤鐪嬶細
鍒漢瀹剁殑鍐欐硶錛?/p>
r = f(p1, p2 != null ? p2 : p3)
$r = f($p1, $p2 ?? $p3)
Go 瀹剁殑鍐欐硶錛?/p>
var r someType
if p2 != nil {
r = f(p1, p2)
} else {
r = f(p1, p3)
}
涓轟粈涔堣璁捐鎴愯繖鏍鳳紵Go 鐖哥埜璇達細浣犱滑鏈変簺浜哄晩錛屼細宓屽寰堝灞??:
錛屽鑷翠唬鐮佸彲璇繪уお宸暒錛屼簬鏄姝綘浠嬌鐢??:
錛岃繖鏄娉曘傚湪榪欓噷錛屼綔涓虹唺瀛╁瓙鐨勪唬琛紝鎴戞潵鍛婅瘔澶у鎬庢牱鍐欏嚭璁?Go 鐖哥埜鏃犺鐨勪唬鐮侊細
foo := 1
bar := 2
var foobar int
if foo > bar { if bar > 1 { foobar = 1 } else if bar < 0 { foobar = 2 } else { foobar = 3 } } else { if foo >= 3 { foobar = 4 } else { foobar = 5 } }
鎬庝箞鏍鳳紵鍙鎬у樊涓嶅樊錛?/p>
鐪嬪埌浜嗗惂錛岃繖縐嶅偦閫兼槸闃蹭笉浣忕殑錛屼粬鎰挎剰鎶??: 宓屽濂藉灞傦紝瀹冨悓鏍峰彲鑳戒細鎶?if else
宓屽濂藉灞傘傛湁绱犺川鐨勪漢浼氭庝箞鍋氾紵閬囧埌 ?:
宓屽澶绔嬮┈鎷嗘垚 if else
銆傛墍浠ョ粨璁烘槸錛屽嵆浣垮幓鎺??:
錛屽偦閫艱繕鏄偦閫鹼紝浣嗘槸姝e父鐨勪漢鍐欎唬鐮佸氨浼氬緢鍟板棪錛涙敮鎸??:
錛屽偦閫艱繕鏄偦閫鹼紝姝e父浜虹敤璧鋒潵鐖姐傝鐭ラ亾涓灞??: 鐨勫満鏅崰鎵鏈??:
鍦烘櫙鐨勬瘮渚嬭繕鏄緢楂樼殑鍚с傛垜瑙夊緱鍙互榪欐牱錛孏o 鐖哥埜鍙互緇熻涓浜涘伐涓氱駭浠g爜搴撶殑 ?:
宓屽灞傛暟錛屼綔涓烘暟鎹敮鎾戯紙姣斿鑷 Chrome 閲屼竴灞??:
鍗?95%錛屼袱灞傚崰 4.9錛夛紝鐒跺悗鍐嶅湪璇█灞傞潰鍙敮鎸佷竴灞??:
錛岀紪璇戝弬鏁板彲閫夋墦寮涓ゅ眰錛屼笉鏀寔涓ゅ眰浠ヤ笂銆傝繖灝卞姛鍦ㄥ崈縐嬩簡銆?/p>
闄や簡 涓嶆敮鎸??:
錛孏o 鐖哥埜榪樻湁寰堝榪欐牱鐨勮璁★紝闅忎究涓懼嚑涓緥瀛愶細
鐗瑰埆鏄涓夌偣錛屼篃鏄繖縐嶆濊礬錛屽洜涓轟綘浠彲鑳戒細婊ョ敤錛屾墍浠ユ垜涓嶆彁渚涖傜被浼艱繖縐嶁滅埜鐖告濊礬鈥濓紝鏄垜浠婂ぉ瑕佸柗鐨勬渶澶у柗鐐廣傚墠涓ょ偣涔熻鏄妱 Java 鐨勶紝涓嶆?Go 鐖哥埜銆?/p>
緇間笂錛孏o 鐖哥埜閫氳繃鎵兼潃涓浜涘熀鏈娉曟垨鑰呬竴浜涘熀紜淇℃伅錛屾潵闃叉鍌婚煎共鍧忎簨錛屽悓鏃惰姝e父浜虹敤璧鋒潵寰堝暟鍡︼紝鍚屾椂榪樺彲鑳介槻姝笉浜嗗偦閫煎共鍧忎簨銆傝繖璺?Java 閫氳繃涓嶆彁渚涢珮綰ц娉曟潵闃叉鍌婚煎共鍧忎簨鏄笀鍑哄悓闂ㄥ晩錛岃屼笖浠栦滑姝eソ閮借兘鍐欑綉緇滄湇鍔$▼搴忥紝浣犺瀹冧滑鍍忎笉鍍忥紵
鐒惰岋紝Go 鐖哥埜涔熸湁綺懼垎鐨勬椂鍊欙紝瀹冨眳鐒跺彂鏄庤娉曠硸浜嗚訛紒姣斿 if
鍙互鎵ц涓涓彞鍙ャ傚崟灝辮繖涓娉曡岃█錛屾垜鐨勬佸害鏄腑绔嬪亸璧炪傝禐鏄禐 Go 鐖哥埜紜疄鐢ㄨ繃蹇冧簡錛屾煇浜涙椂鍊欐尯鏂逛究錛岃繕鑳界緝灝忓彉閲忎綔鐢ㄥ煙錛涗笉榪囪繖涓誨綊鏄彲鏈夊彲鏃犵殑錛屾瘯绔熸崲涓琛屽啓涔熶笉浼氭錛岃鍙橀噺浣滅敤鍩熷姞涓ぇ鎷彿灝辮銆?/p>
灝忚娉曟柟闈㈠掓槸鏈変釜浜偣錛岄偅灝辨槸 switch 鐨勯殣寮?break銆佹樉寮?fallthrough 澶勭悊銆備笉澶氬睍寮浜嗐?/p>
闄や簡闃插偦閫鹼紝Go 鐖哥埜榪樻湁涓涓濊礬錛屽氨鏄彧璁稿窞瀹樻斁鐏紝涓嶈鐧懼鐐圭伅銆傛湁涓や釜璇硶鐐光斺?/p>
鍏堣娉涘瀷鍚с備笉鏀寔娉涘瀷鍏跺疄鎴戞尯鑳界悊瑙g殑錛屽洜涓轟粬紜疄姣??:
澶嶆潅澶氫簡錛屽偦閫肩敤涓嶈搗錛?code>?: 閮芥病鏈夛紝鎬庝箞鍙兘浼氭湁娉涘瀷鍛€傜劧鑰?Go 鐖哥埜鏈夌壒鏉冨憖錛屽畠鐨?map銆乧han 鍙兘鏄硾鍨嬬殑鍝︺備絾鏄綘瑕佸啓涓涓硾鍨嬬殑璇硶緇撴瀯鐨勮瘽錛屽涓嶈搗娌℃湁銆?/p>
鍐嶈閫楀彿ok鏂█錛屽悓鏍?Go 鐖哥埜瑕佸緱璧鳳紝鎴戜滑瑕佷笉璧楓傚叾瀹炴垜鏇存兂瑕佷竴涓繖鏍風殑璇硶錛氬綋榪斿洖鍊兼槸 xxx, ok 鎴栬?xxx, err 鐨勬椂鍊欙紝鎴戝鏋滅敤涓涓繑鍥炲兼帴錛岄偅涔堝氨榪斿洖絎竴涓紝浠ヤ究閾懼紡璋冪敤錛屽悓鏃?!ok 鎴栬?err != nil 鐨勬椂鍊?panic銆?/p>
浠ヤ笂涓ゅ皬鐐硅櫧鐒舵槸鍦ㄥ柗錛屼笉榪囪繕濂藉暒銆傛棤鎵璋撶殑銆備笅闈㈣鍑犱釜澶х殑鏂歸潰銆?/p>
鎴戠壒鍒禐璧?Go 瀵逛簬 package 綰т弗鏍肩殑寰幆渚濊禆媯鏌ャ傜劧鑰屽鏋滃姞涓婂叾浠栬鍒欙細
瀹為檯鍙搷浣滄у氨浼氶潪甯稿樊銆傝鎷?package錛屽氨瑕佹妸渚濊禆鍏崇郴姊崇悊寰楃壒鍒弗鏍鹼紝鍗婄偣涓嶅緱椹檸銆傝繖瀵瑰伐涓鑸殑紼嬩唬鐮佹潵璇存槸涓瀬澶х殑鎸戞垬銆?/p>
鎴戞洿鍊懼悜浜庡仛鎴愬嚱鏁扮駭寰幆渚濊禆媯鏌ワ紝鎴栬呬笉闄愬埗錛堟瘯绔熼掑綊鍑芥暟涔熸槸瑕佹敮鎸佺殑鍢涳級銆?/p>
榪欓儴鍒嗭紝涓珛鍋忓柗錛屽亸鍠鋒槸鍥犱負 Go 鐖哥埜鐢ㄤ簡鎴戠殑灝忓悕 internal銆?/p>
鎴戠壒鍒禐璧?Go 瀵逛簬 OOP 娉涙互鎴愮伨鐨勬濊冧笌鎺㈢儲錛屼互鍙婂浜庣粓緇撹繖闃?Java 甯︽潵鐨勪笉姝d箣椋庣殑鍐沖績銆傛庝箞鍙兘涓囩墿閮芥槸 class 鍛€備絾鍚屾椂錛孏o 榪樻槸鏈夌偣鐭瀴榪囨鐨勶紝濡傛灉鎴戦渶瑕佸埄鐢ㄤ紶緇熺殑 OOP 鏉ユ悶浜嬫儏錛屽氨闈炲父楹葷儲錛屼綘鐢氳嚦閮芥棤娉曞啓鍑轟竴涓鏋舵潵銆備綘鍙兘鍐欏簱璁╁埆浜虹敤銆傝櫧鐒舵垜涔熶笉鍠滄妗嗘灦錛屼絾鏈夌殑鏃跺欐槸闇瑕佹鏋剁殑銆?/p>
defer 闈炲父鍒囦腑鐥涚偣錛岀壒鍒В鍐充竴鍫嗛敊璇?return 澶栧姞璧勬簮閲婃斁鐨勯棶棰樸傜浉姣斾箣涓婥 閲屽彧鑳界敤 goto錛孋++ 鏈韓涓嶆敮鎸佷絾鍙互鐜╁嚭 LOKI_ON_BLOCK_EXIT 鎴栬?BOOST_SCOPE_EXIT銆俤efer 涓涓捐В鍐抽棶棰樸傦紙瑕佹槸鑳藉啀澧炲姞鍛藉悕 defer 浠ュ強鎾ら攢 defer 鐨勫姛鑳藉氨鏇村ソ浜嗐傛病閿欙紝浣犱篃璁哥湅鍑烘潵浜嗭紝鎴戣寰?LOKI_ON_BLOCK_EXIT 鏄渶瀹岀編鐨勬柟妗堛傦級
铏界劧 defer 寰堝ソ錛屼絾涓嶆剰鍛崇潃鏋愭瀯灝辨病鐢ㄦ涔嬪湴浜嗐傜悊鎯崇殑鎯呭喌鏄紝鏋愭瀯銆佸鎬併乨efer 閮借鏈夆︹?/p>
榪欓儴鍒嗘垜鐨勬佸害鏄腑绔嬨?/p>
緇堜簬瑕佺偣璧炰簡銆傞敊璇鐞嗘槸鍦ㄦ垜鐪嬫潵 go 瀹岃儨鐨勫湴鏂癸紝鎭板埌濂藉鍦板鐞嗛棶棰橈紝鍙堥槻姝㈡互鐢ㄣ備篃鐭 Java 甯︽潵鐨勬椋庨偑姘斻?/p>
Java 鐨勮璁★紝璁╀漢涓嶅緱涓嶇敤寮傚父鏉ュ鐞嗕笟鍔°傜敋鑷?Java 鑷繁榪樺府鎴戜滑鍒嗗ソ綾諱簡錛氫竴縐嶆槸涓嶆槸寮傚父鐨勫紓甯革紝鐢ㄦ潵澶勭悊涓氬姟錛涘彟涓縐嶆槸鐪熺殑寮傚父銆備竴浜涚敤鎯?Java 鐨勫偦閫艱窇鍒?C++銆丳HP銆丳ython 閲屼貢鎷夊睅錛屽埌澶勬槸 try catch銆?/p>
Go 鐖哥埜涓澹頒護涓嬶紝涓囩眮淇卞瘋銆?/p>
鏈鍚庝笉寰椾笉璇磋 gorouthine錛屾瘯绔熸槸鍗栫偣鍢涖傛垜鐨勬佸害涓珛鍋忚禐銆傝禐鏄洜涓鴻繖鏄竴縐嶅お鏈夊垱鎰忕殑鏂規錛屽眳鐒舵兂鍦ㄥ湪璇█灞傞潰瑙e喅澶氱嚎紼嬨佸茍鍙戦棶棰橈紱涓嶈繃鎴戣繕鏄寰楄繖鏇村鐨勬槸搴旂敤灞傞潰鐨勯棶棰橈紝鍋氬埌瀹樻柟搴撻噷浼氭洿濂斤紝鑰屼笉鏄仛鎴愯娉曘?/p>
鍒氬紑濮嬬敤 Go 鐨勬椂鍊欙紝鐗瑰埆浜溂錛岀畝鐩村澶勬槸浜偣錛岀劧鍚庤秺鎺ヨЕ瓚婅鍘岋紝涓鐐逛篃涓嶈愮湅鈥︹︾湅寰楀嚭鏉ワ紝璁捐鑰呯硡鍚堜簡 C銆乸ython銆丣ava 鐨勪竴浜涚壒鎬э紝騫惰瀺鍏ヤ簡鑷繁鐨勭嫭鐗圭殑鐞嗚В銆侴o鐨勮璁¤呯湡鐨勭壒鍒壒绔嬬嫭琛屼笖鍧氭寔宸辮錛屼竴浜涙垜鍠滄鐨勭壒鎬у洜涓轟粬浠殑鍧氭寔鑰屽瓨鍦ㄤ笅鏉ワ紝涓浜涙垜璁ㄥ帉鐨勭壒鎬т篃鍥犱負浠栦滑鐨勫潥錛圙u錛夋寔錛圸hi錛夎屼笉鑳芥湁鎵鏀硅銆傚氨榪欐牱鐨?Go錛屾兂浠f浛 C 浣滀負緋葷粺璇█錛屾槸娌℃垙鐨勶紱鎯沖湪緗戠粶鏈嶅姟鏈変竴鐣綔涓猴紝鎶?Java 鐨勪喚棰濓紝鎴栬鏄湁鏈轟細鐨勶紝涓嶈繃鏈澶氬彧鑳芥姠 Java 鐨勶紝榪?C# 鐨勯兘鎶笉浜嗭紝C++銆丳HP 鏇存姠涓嶄簡銆?/p>
鍡紝闄や簡鐗瑰畾鐨勪笉寰椾笉鐢ㄧ殑鍦哄悎錛屽弽姝f垜鏄笉浼氱壒鎰忕敤 Go 鐨勩?/p>
2019錛屾柊騫村揩涔愶紒