Ukukhishwa kolimi lohlelo lweCrystal 1.5

Ukukhishwa kolimi lohlelo lwe-Crystal 1.5 kushicilelwe, abathuthukisi balo abazama ukuhlanganisa ukunethezeka kwentuthuko ngolimi lwesiRuby nesici sokusebenza esiphezulu solimi C. I-syntax ye-Crystal iseduze, kodwa ayihambisani ngokugcwele ne-Ruby, nakuba ezinye izinhlelo ze-Ruby zisebenza ngaphandle kokuguqulwa. Ikhodi yokuhlanganisa ibhalwe nge-Crystal futhi isatshalaliswa ngaphansi kwelayisensi ye-Apache 2.0.

Ulimi lisebenzisa ukuhlola kohlobo olungaguquki, okusetshenziswa ngaphandle kwesidingo sokucacisa ngokusobala izinhlobo zokuguquguquka nama-agumenti endlela kukhodi. Izinhlelo ze-Crystal zihlanganiswa zibe amafayela asebenzisekayo, nama-macros ahloliwe kanye nekhodi ekhiqizwa ngesikhathi sokuhlanganisa. Ezinhlelweni zeCrystal, kungenzeka ukuxhuma izibopho ezibhalwe ngo-C. Ukufana kokwenziwa kwekhodi kwenziwa kusetshenziswa igama elingukhiye elithi "spawn", elikuvumela ukuthi uqhube umsebenzi wangemuva ngokulinganayo, ngaphandle kokuvimba intambo eyinhloko, ngendlela yezintambo ezingasindi ezibizwa ngokuthi amafiber.

Umtapo wolwazi ojwayelekile uhlinzeka ngesethi enkulu yemisebenzi evamile, okufaka amathuluzi okucubungula i-CSV, i-YAML, ne-JSON, izingxenye zokudala amaseva e-HTTP, nosekelo lwe-WebSocket. Phakathi nenqubo yokuthuthukisa, kulula ukusebenzisa umyalo "we-crystal play", okhiqiza isixhumi esibonakalayo sewebhu (localhost:8080 ngokuzenzakalelayo) ukuze kwenziwe ngokuhlanganyela ikhodi ngolimi lwe-Crystal.

Izinguquko eziyinhloko:

  • Umdidiyeli wengeze isheke lokubhalelana kwamagama ezingxabano ekusetshenzisweni kwendlela engabonakali kanye nasencazelweni yayo. Uma kukhona ukungafani kwegama, isixwayiso manje siyakhishwa: i-abstract class FooAbstract abstract def foo(inombolo : Int32) : Nil end class Foo < FooAbstract def foo(igama : Int32) : Nil p name end end 6 | def foo(igama : Int32) : Alikho ^β€” Isexwayiso: 'igama' lepharamitha yesimo lihambisana 'nenombolo' yepharamitha yendlela ekhishwe i-FooAbstract#foo(inombolo : Int32), enegama elihlukile futhi engase ithinte ukudlula kwengxabano eqanjiwe.
  • Lapho unikeza i-agumenti endleleni engabhalwanga enanini lokuguquguquka, impikiswano manje isiboshelwe ohlotsheni lwalokho kuhlukahluka. class Foo @x : Int64 def initialize(x) @x = x # ipharamitha x izobhalwa @x ekupheleni
  • Ikuvumela ukuthi ungeze izichasiselo kumapharamitha wezindlela noma amamakhro. def foo(@[MhlawumbeEngasetshenzisiwe] x); gcina # KULUNGILE
  • Ukwesekwa okwengeziwe kokusebenzisa ama-constants njengama-indices namagama kuma-tuples. KEY = "s" foo = {s: "String", n: 0} ibeka foo[KEY].size
  • Izindlela ezintsha zeFayela#delete? zengeziwe ku-File API ukuze kususwe amafayela nezinkomba. kanye nokuthi Dir#delete?, okubuya kungamanga uma ifayela noma uhla lwemibhalo lungekho.
  • Ukuvikelwa kwendlela ye-File.tempfile kuqinisiwe, manje engavumeli izinhlamvu ezingenalutho emigqeni eyakha igama lefayela.
  • Okuhlukile kwemvelo okungeziwe NO_COLOR, okukhubaza ukugqanyiswa kombala kumhlanganisi nokukhiphayo komtoliki.
  • Umsebenzi kumodi yomtoliki uthuthukiswe kakhulu.

Source: opennet.ru

Engeza amazwana