ИздаванС Π½Π° Π΅Π·ΠΈΠΊΠ° Π·Π° ΠΏΡ€ΠΎΠ³Ρ€Π°ΠΌΠΈΡ€Π°Π½Π΅ Crystal 1.2

ΠŸΡƒΠ±Π»ΠΈΠΊΡƒΠ²Π°Π½Π° Π΅ вСрсията Π½Π° Π΅Π·ΠΈΠΊΠ° Π·Π° ΠΏΡ€ΠΎΠ³Ρ€Π°ΠΌΠΈΡ€Π°Π½Π΅ Crystal 1.2, Ρ‡ΠΈΠΈΡ‚ΠΎ Ρ€Π°Π·Ρ€Π°Π±ΠΎΡ‚Ρ‡ΠΈΡ†ΠΈ сС ΠΎΠΏΠΈΡ‚Π²Π°Ρ‚ Π΄Π° ΠΊΠΎΠΌΠ±ΠΈΠ½ΠΈΡ€Π°Ρ‚ удобството Π½Π° Ρ€Π°Π·Ρ€Π°Π±ΠΎΡ‚Π²Π°Π½Π΅ Π½Π° Π΅Π·ΠΈΠΊΠ° Ruby с високата производитСлност Π½Π° прилоТСнията, ΠΏΡ€ΠΈΡΡŠΡ‰Π° Π½Π° Π΅Π·ΠΈΠΊΠ° C. Π‘ΠΈΠ½Ρ‚Π°ΠΊΡΠΈΡΡŠΡ‚ Π½Π° Crystal Π΅ близък Π΄ΠΎ, Π½ΠΎ Π½Π΅ Π΅ напълно ΡΡŠΠ²ΠΌΠ΅ΡΡ‚ΠΈΠΌ с Ruby, Π²ΡŠΠΏΡ€Π΅ΠΊΠΈ Ρ„Π°ΠΊΡ‚Π°, Ρ‡Π΅ някои ruby ​​програми работят Π±Π΅Π· ΠΏΡ€Π΅Ρ€Π°Π±ΠΎΡ‚ΠΊΠ°. ΠšΠΎΠ΄ΡŠΡ‚ Π½Π° ΠΊΠΎΠΌΠΏΠΈΠ»Π°Ρ‚ΠΎΡ€Π° Π΅ написан Π½Π° Crystal ΠΈ сС разпространява ΠΏΠΎΠ΄ Π»ΠΈΡ†Π΅Π½Π·Π° Apache 2.0.

Π•Π·ΠΈΠΊΡŠΡ‚ ΠΈΠ·ΠΏΠΎΠ»Π·Π²Π° статична ΠΏΡ€ΠΎΠ²Π΅Ρ€ΠΊΠ° Π½Π° Ρ‚ΠΈΠΏΠ°, Ρ€Π΅Π°Π»ΠΈΠ·ΠΈΡ€Π°Π½Π° Π±Π΅Π· нСобходимост ΠΎΡ‚ ΠΈΠ·Ρ€ΠΈΡ‡Π½ΠΎ ΡƒΠΊΠ°Π·Π²Π°Π½Π΅ Π½Π° Ρ‚ΠΈΠΏΠΎΠ²Π΅Ρ‚Π΅ ΠΏΡ€ΠΎΠΌΠ΅Π½Π»ΠΈΠ²ΠΈ ΠΈ Π°Ρ€Π³ΡƒΠΌΠ΅Π½Ρ‚ΠΈΡ‚Π΅ Π½Π° ΠΌΠ΅Ρ‚ΠΎΠ΄Π° Π² ΠΊΠΎΠ΄Π°. ΠŸΡ€ΠΎΠ³Ρ€Π°ΠΌΠΈΡ‚Π΅ Crystal сС ΠΊΠΎΠΌΠΏΠΈΠ»ΠΈΡ€Π°Ρ‚ Π² изпълними Ρ„Π°ΠΉΠ»ΠΎΠ²Π΅, с ΠΎΡ†Π΅Π½ΠΊΠ° Π½Π° макроси ΠΈ Π³Π΅Π½Π΅Ρ€ΠΈΡ€Π°Π½Π΅ Π½Π° ΠΊΠΎΠ΄ ΠΏΠΎ Π²Ρ€Π΅ΠΌΠ΅ Π½Π° компилация. Π’ ΠΏΡ€ΠΎΠ³Ρ€Π°ΠΌΠΈΡ‚Π΅ Π½Π° Crystal Π΅ Ρ€Π°Π·Ρ€Π΅ΡˆΠ΅Π½ΠΎ ΡΠ²ΡŠΡ€Π·Π²Π°Π½Π΅Ρ‚ΠΎ Π½Π° ΠΎΠ±Π²ΡŠΡ€Π·Π²Π°Π½ΠΈΡ, написани Π½Π° Π΅Π·ΠΈΠΊ C. ΠŸΠ°Ρ€Π°Π»Π΅Π»ΠΈΠ·ΠΈΡ€Π°Π½Π΅Ρ‚ΠΎ Π½Π° ΠΈΠ·ΠΏΡŠΠ»Π½Π΅Π½ΠΈΠ΅Ρ‚ΠΎ Π½Π° ΠΊΠΎΠ΄Π° сС ΠΈΠ·Π²ΡŠΡ€ΡˆΠ²Π° с ΠΏΠΎΠΌΠΎΡ‰Ρ‚Π° Π½Π° ΠΊΠ»ΡŽΡ‡ΠΎΠ²Π°Ρ‚Π° Π΄ΡƒΠΌΠ° β€žspawnβ€œ, която Π²ΠΈ позволява Π΄Π° ΠΈΠ·ΠΏΡŠΠ»Π½ΡΠ²Π°Ρ‚Π΅ Ρ„ΠΎΠ½ΠΎΠ²Π° Π·Π°Π΄Π°Ρ‡Π° Π² асинхронСн Ρ€Π΅ΠΆΠΈΠΌ, Π±Π΅Π· Π΄Π° Π±Π»ΠΎΠΊΠΈΡ€Π°Ρ‚Π΅ основната нишка, ΠΏΠΎΠ΄ Ρ„ΠΎΡ€ΠΌΠ°Ρ‚Π° Π½Π° Π»Π΅ΠΊΠΈ нишки, Π½Π°Ρ€Π΅Ρ‡Π΅Π½ΠΈ Π²Π»Π°ΠΊΠ½Π° (Fiber).

Π‘Ρ‚Π°Π½Π΄Π°Ρ€Ρ‚Π½Π°Ρ‚Π° Π±ΠΈΠ±Π»ΠΈΠΎΡ‚Π΅ΠΊΠ° прСдоставя голям Π½Π°Π±ΠΎΡ€ ΠΎΡ‚ ΠΎΠ±Ρ‰ΠΈ Ρ„ΡƒΠ½ΠΊΡ†ΠΈΠΈ, Π²ΠΊΠ»ΡŽΡ‡ΠΈΡ‚Π΅Π»Π½ΠΎ инструмСнти Π·Π° Ρ€Π°Π±ΠΎΡ‚Π° с CSV, YAML ΠΈ JSON, ΠΊΠΎΠΌΠΏΠΎΠ½Π΅Π½Ρ‚ΠΈ Π·Π° ΠΈΠ·Π³Ρ€Π°ΠΆΠ΄Π°Π½Π΅ Π½Π° HTTP ΡΡŠΡ€Π²ΡŠΡ€ΠΈ ΠΈ ΠΏΠΎΠ΄Π΄Ρ€ΡŠΠΆΠΊΠ° Π½Π° WebSocket. По Π²Ρ€Π΅ΠΌΠ΅ Π½Π° процСса Π½Π° Ρ€Π°Π·Ρ€Π°Π±ΠΎΡ‚ΠΊΠ° Π΅ ΡƒΠ΄ΠΎΠ±Π½ΠΎ Π΄Π° ΠΈΠ·ΠΏΠΎΠ»Π·Π²Π°Ρ‚Π΅ ΠΊΠΎΠΌΠ°Π½Π΄Π°Ρ‚Π° β€žcrystal playβ€œ, която Π³Π΅Π½Π΅Ρ€ΠΈΡ€Π° ΡƒΠ΅Π± интСрфСйс (localhost:8080 ΠΏΠΎ ΠΏΠΎΠ΄Ρ€Π°Π·Π±ΠΈΡ€Π°Π½Π΅) Π·Π° ΠΈΠ½Ρ‚Π΅Ρ€Π°ΠΊΡ‚ΠΈΠ²Π½ΠΎ изпълнСниС Π½Π° ΠΊΠΎΠ΄ Π½Π° Π΅Π·ΠΈΠΊΠ° Crystal.

Основни ΠΏΡ€ΠΎΠΌΠ΅Π½ΠΈ:

  • Π”ΠΎΠ±Π°Π²Π΅Π½Π° Π΅ Π²ΡŠΠ·ΠΌΠΎΠΆΠ½ΠΎΡΡ‚ Π·Π° присвояванС Π½Π° подклас Π½Π° ΠΎΠ±Ρ‰ клас към Π΅Π»Π΅ΠΌΠ΅Π½Ρ‚ ΠΎΡ‚ родитСлски клас. клас Foo(T); ΠΊΡ€Π°Π΅Π½ клас Bar(T) < Foo(T); ΠΊΡ€Π°ΠΉ x = Foo x = Bar
  • ΠœΠ°ΠΊΡ€ΠΎΡΠΈΡ‚Π΅ Π²Π΅Ρ‡Π΅ ΠΌΠΎΠ³Π°Ρ‚ Π΄Π° ΠΈΠ·ΠΏΠΎΠ»Π·Π²Π°Ρ‚ Π΄ΠΎΠ»Π½Π° Ρ‡Π΅Ρ€Ρ‚Π°, Π·Π° Π΄Π° ΠΈΠ³Π½ΠΎΡ€ΠΈΡ€Π°Ρ‚ стойност Π² for Ρ†ΠΈΠΊΡŠΠ». {% Π·Π° _, v, i Π² {1 => 2, 3 => 4, 5 => 6} %} p {{v + i}} {% ΠΊΡ€Π°ΠΉ %}
  • Π”ΠΎΠ±Π°Π²Π΅Π½ ΠΌΠ΅Ρ‚ΠΎΠ΄ β€žfile_exists?β€œ към макроситС. Π·Π° ΠΏΡ€ΠΎΠ²Π΅Ρ€ΠΊΠ° Π½Π° ΡΡŠΡ‰Π΅ΡΡ‚Π²ΡƒΠ²Π°Π½Π΅Ρ‚ΠΎ Π½Π° Ρ„Π°ΠΉΠ».
  • Π‘Ρ‚Π°Π½Π΄Π°Ρ€Ρ‚Π½Π°Ρ‚Π° Π±ΠΈΠ±Π»ΠΈΠΎΡ‚Π΅ΠΊΠ° Π²Π΅Ρ‡Π΅ ΠΏΠΎΠ΄Π΄ΡŠΡ€ΠΆΠ° 128-Π±ΠΈΡ‚ΠΎΠ²ΠΈ Ρ†Π΅Π»ΠΈ числа.
  • Π”ΠΎΠ±Π°Π²Π΅Π½ ΠΌΠΎΠ΄ΡƒΠ» Indexable::Mutable(T) с внСдряванС Π½Π° Ρ€Π°Π·ΡˆΠΈΡ€Π΅Π½ΠΈ ΠΎΠΏΠ΅Ρ€Π°Ρ†ΠΈΠΈ Π·Π° ΠΊΠΎΠ»Π΅ΠΊΡ†ΠΈΠΈ ΠΊΠ°Ρ‚ΠΎ BitArray ΠΈ Deque. ba = BitArray.new(10) # ba = BitArray[0000000000] ba[0] = true # ba = BitArray[1000000000] ba.rotate!(-1) # ba = BitArray[0100000000]
  • Π”ΠΎΠ±Π°Π²Π΅Π½ ΠΌΠ΅Ρ‚ΠΎΠ΄ XML::Node#namespace_definition Π·Π° ΠΈΠ·Π²Π»ΠΈΡ‡Π°Π½Π΅ Π½Π° ΠΊΠΎΠ½ΠΊΡ€Π΅Ρ‚Π½ΠΎ пространство ΠΎΡ‚ ΠΈΠΌΠ΅Π½Π° ΠΎΡ‚ XML.
  • ΠœΠ΅Ρ‚ΠΎΠ΄ΠΈΡ‚Π΅ IO#write_utf8 ΠΈ URI.encode са ΠΎΡ‚Ρ…Π²ΡŠΡ€Π»Π΅Π½ΠΈ ΠΈ трябва Π΄Π° Π±ΡŠΠ΄Π°Ρ‚ Π·Π°ΠΌΠ΅Π½Π΅Π½ΠΈ ΠΎΡ‚ IO#write_string ΠΈ URI.encode_path.
  • ΠŸΠΎΠ΄Π΄Ρ€ΡŠΠΆΠΊΠ°Ρ‚Π° Π·Π° 32-Π±ΠΈΡ‚ΠΎΠ²Π° x86 Π°Ρ€Ρ…ΠΈΡ‚Π΅ΠΊΡ‚ΡƒΡ€Π° Π΅ прСмСстСна Π½Π° Π²Ρ‚ΠΎΡ€ΠΎ Π½ΠΈΠ²ΠΎ (Π²Π΅Ρ‡Π΅ Π½Π΅ сС Π³Π΅Π½Π΅Ρ€ΠΈΡ€Π°Ρ‚ Π³ΠΎΡ‚ΠΎΠ²ΠΈ ΠΏΠ°ΠΊΠ΅Ρ‚ΠΈ). ΠŸΠΎΠ΄Π³ΠΎΡ‚Π²Ρ сС ΠΏΡ€Π΅Ρ…Π²ΡŠΡ€Π»ΡΠ½Π΅ към ΠΏΡŠΡ€Π²ΠΎ Π½ΠΈΠ²ΠΎ Π½Π° ΠΏΠΎΠ΄Π΄Ρ€ΡŠΠΆΠΊΠ° Π½Π° Π°Ρ€Ρ…ΠΈΡ‚Π΅ΠΊΡ‚ΡƒΡ€Π°Ρ‚Π° ARM64.
  • Π Π°Π±ΠΎΡ‚Π°Ρ‚Π° ΠΏΡ€ΠΎΠ΄ΡŠΠ»ΠΆΠ°Π²Π°, Π·Π° Π΄Π° сС осигури пълна ΠΏΠΎΠ΄Π΄Ρ€ΡŠΠΆΠΊΠ° Π·Π° ΠΏΠ»Π°Ρ‚Ρ„ΠΎΡ€ΠΌΠ°Ρ‚Π° Windows. Π”ΠΎΠ±Π°Π²Π΅Π½Π° Π΅ ΠΏΠΎΠ΄Π΄Ρ€ΡŠΠΆΠΊΠ° Π·Π° Windows сокСти.
  • Π”ΠΎΠ±Π°Π²Π΅Π½ Π΅ унивСрсалСн ΠΏΠ°ΠΊΠ΅Ρ‚ Π·Π° macOS, Ρ€Π°Π±ΠΎΡ‚Π΅Ρ‰ ΠΊΠ°ΠΊΡ‚ΠΎ Π½Π° устройства с x86 процСсори, Ρ‚Π°ΠΊΠ° ΠΈ Π½Π° ΠΎΠ±ΠΎΡ€ΡƒΠ΄Π²Π°Π½Π΅ с Ρ‡ΠΈΠΏ Apple M1.

Π˜Π·Ρ‚ΠΎΡ‡Π½ΠΈΠΊ: opennet.ru

ДобавянС Π½Π° Π½ΠΎΠ² ΠΊΠΎΠΌΠ΅Π½Ρ‚Π°Ρ€