Crystal 1.0 basa programming sadia

Basa pamrograman Crystal parantos dileupaskeun salaku versi 1.0. Pelepasan ieu nandaan pelepasan signifikan anu munggaran, nyandak dalapan taun damel sareng nyirian stabilisasi sareng kesiapan basa pikeun dianggo dina proyék produksi. Cabang 1.x bakal mertahankeun kasaluyuan mundur tur ngajamin yén euweuh parobahan basa atawa perpustakaan baku bakal négatip dampak ngawangun atawa operasi kode nu aya.

Rilis 1.0.y ngan ukur bakal ngawengku perbaikan minor, sedengkeun vérsi 1.x.0 bakal ngenalkeun fungsi anyar sareng parobihan anu signifikan bari ngajaga kasaluyuan kode. Ideu anyar sareng parobihan anu poténsial henteu cocog bakal dikembangkeun dina cabang anu misah, anu engkéna bakal janten dasar pikeun rilis Crystal 2.0. Sababaraha fitur Crystal 1.0 dinyatakeun awal sareng, sanaos aya dina cabang 1.0, henteu ditangtayungan ku dukungan resmi. Fitur-fitur ieu kalebet multithreading, dukungan platform, sareng Windows, dianggo dina sistem anu nganggo prosesor ARM.

Salaku panginget, pamekar Crystal urang narékahan pikeun ngagabungkeun betah ngembangkeun Ruby kalawan kinerja aplikasi luhur alamiah dina C. sintaksis Crystal deukeut ka Ruby, tapi teu sapinuhna cocog, sanajan kanyataan yén sababaraha program Ruby ngajalankeun tanpa modifikasi. Kodeu kompiler ditulis dina Crystal sareng disebarkeun dina lisénsi Apache 2.0.

Basa ngagunakeun pamariksaan tipe statik, ngaleungitkeun kabutuhan sacara eksplisit nangtukeun jinis variabel sareng argumen metode dina kode. Program kristal disusun kana file anu tiasa dieksekusi, kalayan évaluasi makro sareng generasi kode dina waktos kompilasi. program kristal bisa ngawengku bindings ditulis dina C. palaksanaan kode paralel kahontal ngagunakeun "spawn" keyword, nu ngidinan tugas tukang bisa dibuka asynchronously tanpa blocking thread utama, dina bentuk threads lightweight disebut serat.

Perpustakaan standar nyayogikeun sakumpulan fungsi umum, kalebet alat pikeun ngolah CSV, YAML, sareng JSON, komponén pikeun nyiptakeun server HTTP, sareng dukungan WebSocket. Salila prosés pangwangunan, éta merenah ngagunakeun paréntah "maén kristal", nu dibangkitkeun panganteur web (localhost: 8080 sacara standar) pikeun palaksanaan interaktif kode dina basa Kristal.

Parobahan utama:

  • Tuples ngamungkinkeun aksés indéks kana elemen tina tipena béda, saprak compiler nu weruh jenis unggal unsur. Contona: tuple = {1, "halo", 'x'} v = tuple[0..1] # ngahasilkeun {1, "halo"} typeof(v) # => Tuple(Int32, String)
  • Singketan pengganti dina urutan ngewa Unicode, sapertos "\uD834," dilarang dina string sareng karakter literal. Notasi "\x" kedah dianggo pikeun ngodekeun nilai arbitrer.
  • Sajumlah ageung definisi, makro, sareng metode anu sateuacana dileungitkeun parantos dipiceun tina perpustakaan standar. Ieu kalebet Set, StaticArray# [], YAML.new, HTTP :: Request, HTTP :: WebSocket, Hash#delete_if, Process#kill method, jeung sajabana.
  • Makro getter sareng harta ayeuna ngabutuhkeun jinis uih deui anu kedahna.
  • Metodeu rounding standar geus dirobah jadi TIES_EVEN ("rounding bankir," ka integer pangcaketna, jeung ka angka genap pangcaketna pikeun kasus wates). Parameter RoundingMode geus ditambahkeun kana Number#round, ngidinan Anjeun pikeun milih métode rounding. Métode anu sayogi kalebet: TIES_EVEN, TIES_AWAY, TO_ZERO, TO_POSITIVE, sareng TO_NEGATIVE.
  • Koléksi ngadukung Enumerable#flat_map sareng Iterator#flat_map kalayan unsur jinis campuran.
  • Nalika serializing runtuyan Enum, aranjeunna ayeuna digambarkeun salaku string underscore-delimited.
  • Jenis anu ditetepkeun dina modul XML parantos dirobih tina ngagunakeun struct ka kelas.
  • Pikeun alesan kaamanan, dekoding nami cookie, ogé encoding sareng dekoding nilai cookie, parantos dihentikeun (recoding ayeuna janten tanggung jawab framework sareng aplikasi). Métode HTTP::Cookies.from_headers parantos dibagi kana dua varian pikeun server sareng klien.

sumber: opennet.ru

Mésér hosting anu dipercaya pikeun situs anu gaduh panyalindungan DDoS, server VPS VDS 🔥 Meser hosting situs wéb anu tiasa dipercaya nganggo panyalindungan DDoS, server VPS VDS | ProHoster