I-syntax ye-V ifana kakhulu ne-Go, iboleka ezinye izakhiwo kwi-Oberon, Rust, kunye ne-Swift. Ulwimi lwenziwe lula kangangoko kunokwenzeka kwaye, ngokutsho komphuhlisi, imizuzu engama-30 yokufunda yanele ukufunda iziseko.
Ukwenziwa kolwimi olutsha kwakhuthazwa ngumnqweno wokuphumeza indibaniselwano yolwimi lweGo lula lwe-syntax, isantya sokuhlanganiswa, ukukhululeka kokuhambelana kwemisebenzi, ukuphatheka kunye nokugcinwa kwekhowudi kunye nokusebenza kweC / C ++, ukhuseleko lweRust kunye ukuveliswa kwekhowudi yomatshini kwinqanaba lokuhlanganiswa kweZig. Kwakhona ndifuna ukufumana i-compact kunye ne-compiler ekhawulezayo enokusebenza ngaphandle kokuxhomekeka kwangaphandle, ukulahla umda wehlabathi jikelele (iinguqu zehlabathi) kunye nokubonelela ngekhono "lokutshisa" ukulayisha kwakhona ikhowudi.
Xa kuthelekiswa ne-C ++, ulwimi olutsha lulula kakhulu, lubonelela ngesantya esikhawulezayo sokuhlanganiswa (ukuya kumaxesha angama-400), lusebenzisa iindlela ezikhuselekileyo zokucwangcisa, alunangxaki ngokuziphatha okungachazwanga, kwaye lubonelela ngezixhobo ezakhelwe ngaphakathi zokusebenza ngokuhambelanayo. Xa kuthelekiswa nePython, iV iyakhawuleza, ilula, ikhuselekile, kwaye inokugcinwa ngakumbi. Xa kuthelekiswa ne-Go, i-V ayinazo izinto eziguquguqukayo zehlabathi, akukho nulls, onke amaxabiso aguquguqukayo kufuneka asoloko echazwa, zonke izinto aziguquguquki ngokungagqibekanga, lunye kuphela uhlobo lwesabelo oluxhaswayo ("a: = 0"), icompact ngakumbi. ixesha lokuqhuba kunye nobukhulu beefayile eziphunyezwayo ezibangelwayo, ubukho bokuphatheka ngokuthe ngqo ukusuka ku-C, ukungabikho komqokeleli wenkunkuma, ulandelelwano olukhawulezayo, ukukwazi ukudibanisa imitya (βprintln('$foo: $bar.baz')β).
fn eyona () {
iindawo := ['umdlalo', 'web', 'izixhobo', 'inzululwazi', 'iinkqubo', 'GUI', 'mobile'] a := 10
ukuba yinyani {
a:=20
}
kwindawo kwindawo {
println('Molo, abaphuhlisi bendawo ye-$!')
}
}
Iimpawu zeProjekthi:
- Umqulunqi obambeneyo nokhawulezayo, othi kunye nelayibrari eqhelekileyo ithathe malunga ne-400 KB. Isantya esiphezulu sokuhlanganiswa sifezekiswa ngokuvelisa ngokuthe ngqo ikhowudi yomatshini kunye nemodyuli. Isantya sokuhlanganiswa simalunga ne-1.2 yezigidi zemigca yekhowudi ngesekhondi enye kwi-CPU engundoqo (kuphawulwe ukuba ngexesha lokusebenza V ingasebenzisa i-C, ngoko isantya sihla ukuya kwi-100 amawaka emigca ngomzuzwana). Ukuzihlanganisa komqokeleli, okukwabhalwe ngolwimi lwe-V (kukwakho nenguqulelo yereferensi kwiGo), kuthatha malunga nemizuzwana eyi-0.4. Ekupheleni konyaka, umsebenzi wokulungiswa okongeziweyo kulindeleke ukuba ugqitywe, oya kunciphisa ixesha lokwakha umqambi ukuya kwimizuzwana eyi-0.15. Ukuqwalasela iimvavanyo eziqhutywe ngumphuhlisi, ukuzihlanganisa kwe-Go kufuna i-512 MB yendawo yediski kwaye iqhube kwimizuzu enye enesiqingatha, iRust ifuna i-30 GB kunye nemizuzu engama-45, i-GCC - i-8 GB kunye nemizuzu engama-50, i-Clang - 90 GB kunye imizuzu engama-25,
I-Swift - i-70 GB kunye nemizuzu ye-90; - Iinkqubo zihlanganiswe kwiifayile eziphunyezwayo ngaphandle kokuxhomekeka kwangaphandle. Ubungakanani befayile ephunyezwayo yomncedisi we-http olula emva kokuhlanganisa kuphela ngama-65 KB;
- Ukusebenza kwezicelo ezihlanganisiweyo kwinqanaba leendibano zeenkqubo zeC;
- Ukukwazi ukusebenzisana ngaphandle komthungo kunye nekhowudi ye-C, ngaphandle kokungaphezulu okongeziweyo. Imisebenzi kulwimi lwe-C inokubizwa ngokusuka kwikhowudi kulwimi lwe-V, kwaye ngokuchaseneyo, ikhowudi kulwimi lwe-V inokubizwa ngalo naluphi na ulwimi oluhambelana noC;
- Inkxaso yokuguqulela iiprojekthi ze-C/C++ zibe ngumelo kulwimi lwe-V. I-parser evela ku-Clang isetyenziselwa ukuguqulela. Ayizizo zonke iimpawu zomgangatho we-C ezixhaswayo okwangoku, kodwa amandla angoku omguquli sele anele
uguqulelo ngolwimi lomdlalo we-V DOOM. Umguquleli weC ++ usekwinqanaba lokuqala lophuhliso; - Inkxaso eyakhelwe-ngaphakathi yolandelelwano, ngaphandle kokubotshelelwa kwixesha lokuqhuba;
- Ukunciphisa imisebenzi yokunikezelwa kweememori;
- Ukuqinisekisa ukhuseleko: akukho NULL, iinguqu zehlabathi, amaxabiso angachazwanga kunye nokuchazwa kwakhona okuguquguqukayo. Eyakhelwe-ngaphakathi isithinteli overrun checking. Inkxaso kwimisebenzi eyenziwa ngabenzi (generic). izinto kunye nezakhiwo ezingenakuguqulwa ngokungagqibekanga;
- Ukukwazi ukulayishwa kwakhona kwekhowudi "eshushu" (ukubonisa utshintsho kwikhowudi kwi-fly ngaphandle kokubuyisela);
- Izixhobo zokuqinisekisa i-multithreading. Kanye njengakulwimi lweGo, ulwakhiwo olufana no βrun foo()β lusetyenziswa ukuqalisa umsonto omtsha wophumezo (ofana no βhamba foo()β). Kwixesha elizayo, inkxaso ye-goroutines kunye nomcwangcisi wentambo ucetywayo;
- Inkxaso yeWindows, macOS, Linux, * BSD iinkqubo zokusebenza. Kucetywa ukongeza inkxaso ye-Android kunye ne-iOS ekupheleni konyaka;
- Ulawulo lwememori ngexesha lokuqokelela (njengakwi-Rust), ngaphandle kokusebenzisa umqokeleli wenkunkuma;
- Ubukho besixhobo se-multi-platform toolkit yemveliso yegraphics, usebenzisa i-GDI +/Cocoa kunye ne-OpenGL yokunikezela (inkxaso ye-DirectX, i-Vulkan kunye ne-Metal APIs icwangcisiwe). Kukho izixhobo zokusebenza kunye nezinto ze-3D, i-animation yamathambo kunye nokulawula ikhamera;
- Ubukho bethala leencwadi lokwenza ujongano lomzobo olunezinto zoyilo eziphuma kwi-OS nganye. IiWindows zisebenzisa iWinAPI/GDI+, iMacOS isebenzisa iCocoa, kwaye iLinux isebenzisa isethi yayo yamawijethi. Ithala leencwadi sele lisetyenziswa kuphuhliso
Volt -umxhasi weSlack, iSkype, iGmail, iTwitter kunye neFacebook;Isicwangciso kukudala i-Delphi-like interface design application, ukubonelela nge-API echazayo efana ne-SwiftUI kunye ne-React Native, kwaye inike inkxaso yokudala izicelo zeselula ze-iOS kunye ne-Android;
- Ukufumaneka kwesakhelo sewebhu esakhelwe ngaphakathi, esisetyenziselwa ukudala iwebhusayithi, iforamu kunye neblogi yabaphuhlisi beprojekthi. Ukuqulunqwa kwangaphambili kweetemplates zeHTML kuyaxhaswa, ngaphandle kokuqhubekeka kwisicelo ngasinye;
- Inkxaso yokuhlanganiswa komnqamlezo. Ukwakha ifayile ephunyeziweyo yeWindows, vele usebenze "v -os windows", kunye neLinux - "v -os linux" (inkxaso yokuhlanganiswa kwe-macOS ilindeleke kamva). Ukuhlanganiswa kwe-Cross-compilation kukwasebenza kwizicelo zegraphical;
- Umphathi wokuxhomekeka owakhelwe-ngaphakathi, umphathi wephakheji kunye nezixhobo zokwakha. Ukwakha inkqubo, vele usebenze "v.", ngaphandle kokusebenzisa i-make okanye izixhobo zangaphandle. Ukufakela iilayibrari ezongezelelweyo, vele usebenze, umzekelo, "v fumana sqlite";
- Ubukho beeplagi zophuhliso kulwimi lwe-V kubahleli
Code VS ΠΈvΓm .
Phuhliso
Ukongeza, ekuqaleni indawo yokugcina yayinayo
Ngeli xesha, iProject V's bug tracker inezithuba ezili-10 ezisusiweyo
umthombo: opennet.ru