Pagpagawas sa Crystal programming language 1.5

Ang pagpagawas sa Crystal 1.5 programming language gipatik, ang mga developers nga naningkamot sa paghiusa sa kasayon ​​​​sa pag-uswag sa Ruby nga pinulongan uban sa taas nga aplikasyon nga performance nga kinaiya sa C nga pinulongan. Ang syntax ni Crystal duol sa, apan dili hingpit nga nahiuyon sa, Ruby, bisan kung ang pipila ka mga programa sa Ruby nagdagan nga wala’y pagbag-o. Ang compiler code gisulat sa Crystal ug giapod-apod ubos sa Apache 2.0 nga lisensya.

Ang lengguwahe naggamit ug static type checking, gipatuman nga wala kinahanglana nga klaro nga ipiho ang mga tipo sa variable ug mga argumento sa pamaagi sa code. Ang mga kristal nga programa gihugpong ngadto sa mga executable nga mga file, nga adunay mga macro nga gisusi ug ang code nga namugna sa panahon sa pag-compile. Sa mga programa sa Crystal, posible nga makonektar ang mga binding nga gisulat sa C. Ang parallelization sa code execution gihimo gamit ang "spawn" nga keyword, nga nagtugot kanimo sa pagpadagan sa usa ka background nga buluhaton nga asynchronously, nga walay pagbabag sa main thread, sa porma sa lightweight nga mga hilo nga gitawag og mga lanot.

Ang standard nga librarya naghatag og usa ka dako nga hugpong sa komon nga mga gimbuhaton, lakip ang mga himan alang sa pagproseso sa CSV, YAML, ug JSON, mga sangkap alang sa paghimo sa mga HTTP server, ug suporta sa WebSocket. Atol sa proseso sa pag-uswag, sayon ​​​​ang paggamit sa "crystal play" nga sugo, nga nagmugna og web interface (localhost: 8080 pinaagi sa default) alang sa interactive nga pagpatuman sa code sa Crystal nga pinulongan.

Panguna nga mga pagbag-o:

  • Nagdugang ang compiler og tseke alang sa mga sulat sa mga ngalan sa argumento sa pagpatuman sa usa ka abstract nga pamaagi ug sa kahulugan niini. Kung adunay dili pagtugma sa ngalan, usa ka pasidaan ang gipagawas karon: abstract nga klase FooAbstract abstract def foo(numero: Int32): Nil katapusan nga klase Foo < FooAbstract def foo(ngalan: Int32): Nil p ngalan katapusan katapusan 6 | def foo(ngalan: Int32): Nil ^— Warning: positional parameter 'name' katumbas sa parameter 'number' sa overridden nga pamaagi FooAbstract#foo(numero: Int32), nga adunay lain nga ngalan ug mahimong makaapekto sa ginganlan nga argumento nga milabay
  • Kung nag-assign sa usa ka argumento sa usa ka wala ma-type nga pamaagi sa kantidad sa usa ka variable, ang argumento karon gipugngan sa tipo sa kana nga variable. class Foo @x : Int64 def initialize(x) @x = x # parameter x i-type @x end end
  • Nagtugot kanimo sa pagdugang sa mga anotasyon sa mga parameter sa mga pamaagi o mga macro. def foo(@[MaybeUnused] x); katapusan # OK
  • Gidugang nga suporta alang sa paggamit sa mga makanunayon ingon mga indeks ug mga ngalan sa mga tuple. KEY = "s" foo = {s: "String", n: 0} gibutang foo[KEY].gidak-on
  • Bag-ong File#delete? nga mga pamaagi gidugang sa File API para sa pagtangtang sa mga file ug mga direktoryo. ug Dir#delete?, nga nagbalik nga bakak kung ang file o direktoryo nawala.
  • Ang pagpanalipod sa pamaagi sa File.tempfile gipalig-on, nga karon wala magtugot sa null nga mga karakter sa mga linya nga nagporma sa ngalan sa file.
  • Gidugang nga variable sa palibot NO_COLOR, nga nagpugong sa pag-highlight sa kolor sa compiler ug interpreter nga output.
  • Ang pagtrabaho sa interpreter mode labi nga milambo.

Source: opennet.ru

Idugang sa usa ka comment