Itusilẹ ti ede siseto Crystal 1.5

Itusilẹ ti ede siseto Crystal 1.5 ti ṣe atẹjade, awọn olupilẹṣẹ eyiti o ngbiyanju lati darapo irọrun ti idagbasoke ni ede Ruby pẹlu ihuwasi iṣẹ ṣiṣe ohun elo giga ti ede C. Crystal ká sintasi jẹ sunmo si, sugbon ko ni kikun si ni ibamu pẹlu Ruby, biotilejepe diẹ ninu Ruby eto nṣiṣẹ lai iyipada. Awọn koodu alakojo ti kọ ni Crystal ati pin labẹ awọn Apache 2.0 iwe-ašẹ.

Ede naa nlo iṣayẹwo iru aimi, ti a ṣe laisi iwulo lati pato awọn iru awọn oniyipada ati awọn ariyanjiyan ọna ninu koodu naa. Awọn eto Crystal ti wa ni akojọpọ sinu awọn faili ṣiṣe, pẹlu iṣiro macros ati koodu ti ipilẹṣẹ ni akoko akopọ. Ninu awọn eto Crystal, o ṣee ṣe lati sopọ awọn abuda ti a kọ sinu C. Idarapọ ti ipaniyan koodu ni a ṣe ni lilo ọrọ-ọrọ “spawn”, eyiti o fun ọ laaye lati ṣiṣẹ iṣẹ-ṣiṣe lẹhin asynchronously, laisi idilọwọ okun akọkọ, ni irisi awọn okun iwuwo fẹẹrẹ ti a pe ni awọn okun.

Ile-ikawe boṣewa n pese eto nla ti awọn iṣẹ ti o wọpọ, pẹlu awọn irinṣẹ fun sisẹ CSV, YAML, ati JSON, awọn paati fun ṣiṣẹda awọn olupin HTTP, ati atilẹyin WebSocket. Lakoko ilana idagbasoke, o rọrun lati lo aṣẹ “crystal play”, eyiti o ṣe agbekalẹ wiwo wẹẹbu kan (localhost: 8080 nipasẹ aiyipada) fun ipaniyan ibaraenisepo ti koodu ni ede Crystal.

Awọn iyipada akọkọ:

  • Olupilẹṣẹ ti ṣafikun ayẹwo kan fun ifọrọranṣẹ ti awọn orukọ ariyanjiyan ni imuse ti ọna ababọ ati ni itumọ rẹ. Ti o ba ti wa ni orukọ aiṣedeede, a ikilọ ti wa ni bayi ti oniṣowo: áljẹbrà kilasi FooAbstract abstract def foo(nọmba : Int32): Nil opin kilasi Foo < FooAbstract def foo(name : Int32) : Nil p orukọ opin opin 6 | def foo(orukọ: Int32): Nil ^ — Ikilọ: paramita ipo 'orukọ' ni ibamu si paramita 'nọmba' ti ọna ti o bori FooAbstract#foo (nọmba: Int32), eyiti o ni orukọ ti o yatọ ati pe o le ni ipa lori ariyanjiyan ti a npè ni ti nkọja lọ.
  • Nigbati o ba nfi ariyanjiyan si ọna ti a ko tẹ si iye ti oniyipada, ariyanjiyan naa ti ni ihamọ si iru oniyipada yẹn. kilasi Foo @x : Int64 def initialize(x) @x = x # paramita x yoo jẹ titẹ @x opin opin
  • Gba ọ laaye lati ṣafikun awọn alaye si awọn aye ti awọn ọna tabi awọn macros. def foo (@[MaybeUnused] x); ipari # O dara
  • Atilẹyin ti a ṣafikun fun lilo awọn iduro bi awọn atọka ati awọn orukọ ninu awọn tuples. KEY = "s" foo = {s: "Okun", n: 0} fi foo[KEY].size
  • Awọn ọna Faili titun #parẹ? ti jẹ afikun si faili API fun piparẹ awọn faili ati awọn ilana. ati Dir#parẹ?, eyi ti o da eke pada ti faili tabi ilana ti nsọnu.
  • Aabo ọna File.tempfile ti ni okun, eyiti ko gba awọn ohun kikọ asan laaye ninu awọn ila ti o ṣe orukọ faili naa.
  • Iyipada ayika ti a ṣafikun NO_COLOR, eyiti o mu ki afihan awọ jẹ alakojọ ati iṣelọpọ onitumọ.
  • Iṣẹ ni ipo onitumọ ti ni ilọsiwaju ni pataki.

orisun: opennet.ru

Fi ọrọìwòye kun