Ukukhutshwa kolwimi lwenkqubo yeCrystal 1.5

Ukukhutshwa kweCrystal 1.5 ulwimi lwenkqubo luye lwapapashwa, abaphuhlisi abazama ukudibanisa ukulungelelaniswa kophuhliso ngolwimi lwesiRuby kunye neempawu eziphezulu zokusebenza kolwimi lweC. I-syntax yeCrystal isondele, kodwa ayihambelani ngokupheleleyo ne-Ruby, nangona ezinye iinkqubo zeRuby zisebenza ngaphandle kokuguqulwa. Ikhowudi yokudibanisa ibhalwe kwiCrystal kwaye isasazwe phantsi kwelayisensi ye-Apache 2.0.

Ulwimi lusebenzisa ukujonga uhlobo lwe-static, luphunyezwe ngaphandle kwesidingo sokucacisa ngokucacileyo iindidi zeendlela kunye neengxabano zendlela kwikhowudi. Iiprogram zeCrystal zihlanganiswe kwiifayile eziphunyezwayo, kunye ne-macros evavanyiweyo kunye nekhowudi eyenziwe ngexesha lokuqokelela. Kwiinkqubo zeCrystal, kuyenzeka ukudibanisa izibophelelo ezibhalwe kwiC. Ukuhambelana kokusetyenziswa kwekhowudi kuqhutyelwa ngokusebenzisa igama elingundoqo elithi "spawn", elikuvumela ukuba uqhube umsebenzi wangemva ngokulandelelana, ngaphandle kokuthintela intambo ephambili, ngendlela yeentambo ezilula ezibizwa ngokuba yi-fibers.

Ilayibrari eqhelekileyo ibonelela ngesethi enkulu yemisebenzi eqhelekileyo, kubandakanywa nezixhobo zokucubungula i-CSV, i-YAML, kunye ne-JSON, amacandelo okudala iiseva ze-HTTP, kunye nenkxaso yeWebSocket. Ngethuba lenkqubo yophuhliso, kukulungele ukusebenzisa umyalelo "we-crystal play", ovelisa i-interface yewebhu (localhost: 8080 ngokungagqibekanga) ekusebenzeni ngokubambisana kwekhowudi ngolwimi lweCrystal.

Utshintsho oluphambili:

  • Umqambi wongeze isheke kwimbalelwano yamagama eengxabano ekuphunyezweni kwendlela engabonakaliyo kunye nenkcazo yayo. Ukuba kukho igama elingahambelaniyo, isilumkiso ngoku sikhutshiwe: iklasi engabonakaliyo FooAbstract abstract def foo(inombolo : Int32) : Ayipheli iklasi Foo < FooAbstract def foo(igama : Int32) : Alikho igama ekupheleni 6 | def foo (igama : Int32) : Alikho ^β€” Isilumkiso: iparameter yendawo 'igama' lihambelana nepharamitha 'inani' lendlela ebhalwe ngaphezulu FooAbstract#foo(inombolo : Int32), enegama elahlukileyo kwaye inokuchaphazela ukugqitha kwempikiswano
  • Xa unikezela impikiswano kwindlela engachwethezwanga kwixabiso loguquko, impikiswano ngoku ibotshelelwe kudidi lowa mahluko. iklasi Foo @x : Int64 def initialize(x) @x = x # parameter x iyakuchwethezwa @x isiphelo
  • Ikuvumela ukuba wongeze izichasiselo kwiiparameters zeendlela okanye iimacros. def foo(@[MhlawumbiEngasetyenziswanga] x); Phelisa # Kulungile
  • Inkxaso eyongeziweyo yokusebenzisa i-constants njenge-indices kunye namagama kwii-tuples. ISIQINISO = "s" foo = {s: "Umtya", n: 0} ibeka i-foo[KEY].ubungakanani
  • Ifayile entsha#cima iindlela zongezwe kwiFayile API yokucima iifayile kunye nabalawuli. kunye Dir#cima?, ebuyisela bubuxoki ukuba ifayile okanye ulawulo alukho.
  • Ukukhuselwa kwendlela yeFayile.tempfile yomeleziwe, ngoku engavumeli abalinganiswa abangenanto kwimigca eyenza igama lefayile.
  • Ukutshintsha kwemeko-bume okongeziweyo NO_COLOR, evala ukuqaqambisa umbala kumqokeleli kunye nesiphumo setoliki.
  • Umsebenzi kwimo yokutolika uphuculwe kakhulu.

umthombo: opennet.ru

Yongeza izimvo