Kuburitswa kweCrystal programming mutauro 1.5

Kuburitswa kweCrystal 1.5 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:

  • Muumbi akawedzera cheki yekunyorerana kwemazita ekupokana mukuitwa kweabstract nzira uye mukutsanangurwa kwayo. Kana paine zita risingaenderani, yambiro ikozvino yapihwa: abstract class FooAbstract abstract def foo(nhamba : Int32) : Nil end class Foo < FooAbstract def foo(zita : Int32) : Nil p name end end 6 | def foo(zita: Int32) : Nil ^β€” Yambiro: positional parameter 'zita' rinoenderana neparameter 'nhamba' yenzira yakadhindwa FooAbstract#foo(nhamba : Int32), iyo ine zita rakasiyana uye inogona kukanganisa danho rinopfuura.
  • Pakupa nharo kune nzira isina kunyorwa kune kukosha kwekusiyana, nharo yave kumanikidzirwa kune rudzi rwekuchinja ikoko. class Foo @x : Int64 def initialize(x) @x = x # parameter x ichanyorwa @x end end
  • Inokutendera kuti uwedzere zvirevo kune ma parameter emaitiro kana macros. def foo(@[MaybeUnused] x); kupera # OK
  • Yakawedzerwa rutsigiro rwekushandisa maconstants sema indices nemazita mumatuples. KEY = "s" foo = {s: "String", n: 0} inoisa foo[KEY].size
  • Nyowani Faira#delete? nzira dzakawedzerwa kuFaira API yekudzima mafaera nemadhairekitori. uye Dir#delete?, iyo inodzoka yenhema kana faira kana dhairekitori isipo.
  • Kudzivirirwa kweFayile.temfile nzira yakasimbiswa, iyo ikozvino isingabvumiri mavara asina maturo mumitsara inoumba zita refaira.
  • Yakawedzerwa nharaunda inosiyana NO_COLOR, iyo inodzima kupenya kwemavara mumubatanidzwa uye kubuda kwemuturikiri.
  • Basa remuturikiri rakavandudzwa zvakanyanya.

Source: opennet.ru

Voeg