Rhyddhau iaith raglennu Crystal 1.5

Mae rhyddhau iaith raglennu Crystal 1.5 wedi'i gyhoeddi, y mae ei ddatblygwyr yn ceisio cyfuno cyfleustra datblygiad yn yr iaith Ruby Γ’ nodwedd perfformiad cymhwysiad uchel yr iaith C. Mae cystrawen Crystal yn agos at, ond nid yn gwbl gydnaws Γ’, Ruby, er bod rhai rhaglenni Ruby yn rhedeg heb eu haddasu. Mae'r cod casglwr wedi'i ysgrifennu yn Crystal a'i ddosbarthu o dan drwydded Apache 2.0.

Mae'r iaith yn defnyddio gwirio math statig, a weithredir heb fod angen nodi'n benodol y mathau o newidynnau a dadleuon dull yn y cod. Mae rhaglenni grisial yn cael eu crynhoi yn ffeiliau gweithredadwy, gyda macros yn cael eu gwerthuso a chod yn cael ei gynhyrchu ar amser llunio. Mewn rhaglenni Crystal, mae'n bosibl cysylltu rhwymiadau a ysgrifennwyd yn C. Mae cyfochrog gweithredu cod yn cael ei wneud gan ddefnyddio'r allweddair β€œsilio”, sy'n eich galluogi i redeg tasg gefndir yn anghydamserol, heb rwystro'r prif edau, ar ffurf edafedd ysgafn o'r enw ffibrau.

Mae'r llyfrgell safonol yn darparu set fawr o swyddogaethau cyffredin, gan gynnwys offer ar gyfer prosesu CSV, YAML, a JSON, cydrannau ar gyfer creu gweinyddwyr HTTP, a chefnogaeth WebSocket. Yn ystod y broses ddatblygu, mae'n gyfleus defnyddio'r gorchymyn "chwarae crisial", sy'n cynhyrchu rhyngwyneb gwe (localhost: 8080 yn ddiofyn) ar gyfer gweithredu cod yn rhyngweithiol yn yr iaith Crystal.

Newidiadau mawr:

  • Mae'r casglwr wedi ychwanegu siec am gyfatebiaeth enwau dadleuon wrth weithredu dull haniaethol ac yn ei ddiffiniad. Os oes anghydweddiad enw, rhoddir rhybudd nawr: dosbarth haniaethol FooAbstract def foo(rhif : Int32) : Dim diwedd dosbarth Foo < FooAbstract def foo(enw : Int32) : Dim p enw diwedd diwedd 6 | def foo(enw : Int32) : Dim ^β€” Rhybudd: paramedr lleoliadol 'enw' yn cyfateb i baramedr 'rhif' y dull gwrthwneud FooAbstract# foo(rhif : Int32), sydd ag enw gwahanol a gall effeithio ar basio'r ddadl a enwir
  • Wrth aseinio dadl i ddull heb ei deipio i werth newidyn, mae'r ddadl bellach wedi'i chyfyngu i'r math o newidyn hwnnw. dosbarth Foo @x : Int64 def ymgychwyn(x) @x = x # paramedr x yn cael ei deipio @x diwedd diwedd
  • Yn caniatΓ‘u ichi ychwanegu anodiadau at baramedrau dulliau neu facros. def foo(@[Efallai na chaiff ei ddefnyddio] x); diwedd # Iawn
  • Cefnogaeth ychwanegol ar gyfer defnyddio cysonion fel mynegeion ac enwau mewn tuples. ALLWEDD = "s" foo = {s: "Llinyn", n: 0} yn rhoi foo[ALLWEDDOL].size
  • Mae dulliau Ffeil#dileu? newydd wedi'u hychwanegu at yr API Ffeil ar gyfer dileu ffeiliau a chyfeiriaduron. a Dir#delete?, sy'n dychwelyd ffug os yw'r ffeil neu'r cyfeiriadur ar goll.
  • Mae amddiffyniad y dull File.tempfile wedi'i gryfhau, nad yw bellach yn caniatΓ‘u nodau nwl yn y llinellau sy'n ffurfio enw'r ffeil.
  • Ychwanegwyd newidyn amgylchedd NO_COLOR, sy'n analluogi amlygu lliw mewn allbwn casglwr a dehonglydd.
  • Mae gwaith yn y modd cyfieithydd wedi gwella'n sylweddol.

Ffynhonnell: opennet.ru

Ychwanegu sylw