Derxistina zimanê bernamenûsê Crystal 1.5

Serbestberdana zimanê bernamenûsê Crystal 1.5 hate weşandin, pêşdebirên ku hewil didin ku rehetiya pêşkeftina di zimanê Ruby de bi taybetmendiya performansa serîlêdana bilind a zimanê C re hev bikin. Hevoksaziya Crystal nêzîk e, lê bi tevahî bi Ruby re ne hevaheng e, her çend hin bernameyên Ruby bêyî guheztinê dimeşin. Koda berhevkar bi Crystal hatiye nivîsandin û di bin lîsansa Apache 2.0 de tê belavkirin.

Ziman kontrolkirina tîpên statîk bikar tîne, bêyî ku hewce bike ku bi eşkere cûreyên guhêrbar û argumanên rêbazê yên di kodê de were destnîşankirin. Bernameyên krîstal di pelên îcrakar de têne berhev kirin, bi makro têne nirxandin û kod di dema berhevkirinê de têne çêkirin. Di bernameyên Crystal de, gengaz e ku girêdanên ku bi C-yê hatine nivîsandin ve girêdin. Parallelîzasyona darvekirina kodê bi karanîna peyva key "spawn" ve tête kirin, ku dihêle hûn di moda asynchronous de peywirek paşîn bimeşînin bêyî astengkirina mijara sereke, di forma têlên sivik ên ku jê re fiber têne gotin.

Pirtûkxaneya standard komek mezin ji fonksiyonên hevpar peyda dike, di nav de amûrên ji bo pêvajoyê CSV, YAML, û JSON, pêkhateyên ji bo afirandina serverên HTTP, û piştgiriya WebSocket. Di dema pêvajoya pêşkeftinê de, hêsan e ku meriv emrê "lîstina krîstal" bikar bîne, ku ji bo pêkanîna înteraktîf a kodê di zimanê Crystal de navgînek malperê (localhost: 8080 bi xwerû) diafirîne.

Guhertinên sereke:

  • Berhevkar di pêkanîna rêbazek razber û di pênaseya wê de ji bo hevahengiya navên argumanan kontrolek zêde kiriye. Ger navekî nelihev hebe, niha hişyariyek tê dayîn: pola abstract FooAbstract abstract def foo(hejmar : Int32) : Nil end class Foo < FooAbstract def foo(nav: Int32) : Nil p navê dawiya 6 | def foo(nav: Int32) : Nil ^- Hişyarî: Parametreya pozîsyonê 'nav' bi parametreya 'hejmara' ya rêbaza sergirtî re têkildar e FooAbstract#foo(hejmar : Int32), ku navekî din heye û dibe ku bandorê li derbasbûna argumana bi nav bike.
  • Dema ku argûmanek ji rêbazek netîpkirî re li ser nirxa guhêrbarek were danîn, naha arguman li gorî celebê wê guhêrbar tê sînordar kirin. class Foo @x : Int64 def destpêkê(x) @x = x # parametre x dê @x dawiya dawî were nivîsandin
  • Destûrê dide we ku hûn şîroveyan li pîvanên rêbazan an makroyan zêde bikin. def foo(@[MaybeUnused] x); dawî # OK
  • Piştgiriyek ji bo karanîna domdar wekî nîşanek û navên di tîpan de zêde kir. KEY = "s" foo = {s: "String", n: 0} dike foo[KEY].size
  • Ji bo jêbirina pel û peldankan rêbazên Pelê# jêbirin li API-ya Pelê hatine zêdekirin. û Dir# jêbirin?, ku eger pel an pelrêça wenda be, xelet vedigerin.
  • Parastina rêbaza File.tempfile hate bihêz kirin, ku naha rê nade tîpên null di rêzikên ku navê pelê de çêdikin.
  • Guherbara jîngehê NO_COLOR lê zêde kir, ku ronîkirina rengan di derana berhevkar û wergêr de asteng dike.
  • Xebata di moda wergêrê de pir pêşketiye.

Source: opennet.ru

Add a comment