Kuburitswa kweCrystal programming mutauro 1.2

Kuburitswa kweCrystal 1.2 programming language kwaburitswa, vagadziri vacho vari kuyedza kubatanidza iko kureruka kwebudiriro mumutauro weRuby nehunyanzvi hwekuita kwekushandisa kwemutauro weC. Syntax yaCrystal iri padyo ne, asi haienderane zvizere ne, Ruby, kunyangwe mamwe mapurogiramu eRuby achimhanya asina kugadziridzwa. Iyo compiler kodhi yakanyorwa muCrystal uye yakagoverwa pasi peiyo Apache 2.0 rezinesi.

Mutauro unoshandisa static type yekutarisa, inoshandiswa pasina chikonzero chekutsanangura zvakajeka marudzi emhando uye nzira nharo mukodhi. Zvirongwa zveCrystal zvinounganidzwa kuita mafaera anogona kuitiswa, ane macros akaongororwa uye kodhi inogadzirwa panguva yekuunganidza. Muzvirongwa zveCrystal, zvinokwanisika kubatanidza zvisungo zvakanyorwa muC. Kufananidza kwekuita kwekodhi kunoitwa uchishandisa izwi rekuti "spawn", iro rinokutendera kuti uite basa rekumashure asynchronously, usingavharidzi tambo huru, muchimiro chetambo dzakareruka dzinodaidzwa kuti fibers.

Iyo raibhurari yakajairika inopa yakakura seti yeakajairwa mabasa, kusanganisira maturusi ekugadzirisa CSV, YAML, uye JSON, zvikamu zvekugadzira HTTP maseva, uye WebSocket rutsigiro. Munguva yekuvandudza, zviri nyore kushandisa "crystal play" murairo, iyo inogadzira web interface (localhost:8080 by default) kuitira kupindirana kwekuita kwekodhi mumutauro weCrystal.

Shanduko huru:

  • Yakawedzera kugona kugovera chikamu chidiki chekirasi yegeneric kune chinhu chekirasi yevabereki. kirasi Foo(T); end class Bar(T) < Foo(T); kupera x = Foo x = Bhawa
  • Macros ikozvino inogona kushandisa underscore kufuratira kukosha mune for loop. {% ye _, v, i mu {1 => 2, 3 => 4, 5 => 6} %} p {{v + i}} {% kupera %}
  • Yakawedzerwa "file_exists?" nzira kune macros. kutarisa kuvepo kwefaira.
  • Raibhurari yakajairika ikozvino inotsigira 128-bit integers.
  • Yakawedzerwa Indexable :: Inogoneka (T) module ine kuita zvepamberi mashandiro ekuunganidza seBitArray uye Deque. ba = BitArray.new(10) # ba = BitArray[0000000000] ba[0] = chokwadi # ba = BitArray[1000000000] ba.rotate!(-1) # ba = BitArray[0100000000]
  • Yakawedzerwa XML ::Node#namespace_definition nzira yekubvisa imwe zita rezita kubva kuXML.
  • Nzira dzeIO#write_utf8 neURI.encode dzaregwa uye dzinofanira kutsiviwa neIO#write_string uye URI.encode_path.
  • Tsigiro ye32-bit x86 architecture yakaendeswa kune yechipiri nhanho (yakagadzirira-yakagadzirwa mapakeji haachagadzirwa). Kuendeswa kune yekutanga nhanho yerutsigiro yeArM64 architecture iri kugadzirirwa.
  • Basa rinoenderera mberi nekuona kutsigirwa kwakazara kweWindows platform. Yakawedzera rutsigiro rweWindows sockets.
  • Pasuru yepasirese yawedzerwa macOS, ichishanda zvese pamidziyo ine x86 processors uye pamidziyo ine Apple M1 chip.

Source: opennet.ru

Voeg