ืฉื—ืจื•ืจ ืฉืคืช ื”ืชื›ื ื•ืช Crystal 1.2

ืคื•ืจืกื ืฉื—ืจื•ืจ ืฉืคืช ื”ืชื›ื ื•ืช Crystal 1.2, ืืฉืจ ืžืคืชื—ื™ื” ืžื ืกื™ื ืœืฉืœื‘ ื‘ื™ืŸ ื ื•ื—ื•ืช ื”ืคื™ืชื•ื— ื‘ืฉืคืช Ruby ืœื‘ื™ืŸ ื‘ื™ืฆื•ืขื™ ื”ืืคืœื™ืงืฆื™ื” ื”ื’ื‘ื•ื”ื™ื ื”ืื•ืคื™ื™ื ื™ื™ื ืœืฉืคืช C. ื”ืชื—ื‘ื™ืจ ืฉืœ ืงืจื™ืกื˜ืœ ืงืจื•ื‘ ืœืจื•ื‘ื™, ืืš ืื™ื ื• ืชื•ืื ืœื• ื‘ืื•ืคืŸ ืžืœื, ืœืžืจื•ืช ืฉื—ืœืง ืžืชื•ื›ื ื™ื•ืช ืจื•ื‘ื™ ืคื•ืขืœื•ืช ืœืœื ืฉื™ื ื•ื™. ืงื•ื“ ื”ืžื”ื“ืจ ื›ืชื•ื‘ ื‘ืงืจื™ืกื˜ืœ ื•ืžื•ืคืฅ ืชื—ืช ืจื™ืฉื™ื•ืŸ Apache 2.0.

ื”ืฉืคื” ืžืฉืชืžืฉืช ื‘ื‘ื“ื™ืงืช ื˜ื™ืคื•ืก ืกื˜ื˜ื™ืช, ื”ืžื™ื•ืฉืžืช ืœืœื ืฆื•ืจืš ืœืฆื™ื™ืŸ ื‘ืžืคื•ืจืฉ ืืช ืกื•ื’ื™ ื”ืžืฉืชื ื™ื ื•ื”ืืจื’ื•ืžื ื˜ื™ื ืฉืœ ื”ืฉื™ื˜ื” ื‘ืงื•ื“. ืชื•ื›ื ื™ื•ืช ืงืจื™ืกื˜ืœ ืžื•ืจื›ื‘ื•ืช ืœืงื‘ืฆื™ ื”ืคืขืœื”, ื›ืืฉืจ ืคืงื•ื“ื•ืช ืžืืงืจื• ืžื•ืขืจื›ื•ืช ื•ืงื•ื“ ืฉื ื•ืฆืจ ื‘ื–ืžืŸ ื”ื”ื™ื“ื•ืจ. ื‘ืชื•ื›ื ื•ืช ืงืจื™ืกื˜ืœ ืืคืฉืจ ืœื—ื‘ืจ bindings ืฉื ื›ืชื‘ื• ื‘-C. ื”ืงื‘ื™ืœื” ืฉืœ ื‘ื™ืฆื•ืข ื”ืงื•ื“ ืžืชื‘ืฆืขืช ื‘ืืžืฆืขื•ืช ืžื™ืœืช ื”ืžืคืชื— "spawn", ื”ืžืืคืฉืจืช ืœื”ืจื™ืฅ ืžืฉื™ืžืช ืจืงืข ื‘ืื•ืคืŸ ืืกื™ื ื›ืจื•ื ื™, ืžื‘ืœื™ ืœื—ืกื•ื ืืช ื”ื—ื•ื˜ ื”ืจืืฉื™, ื‘ืฆื•ืจื” ืฉืœ ื—ื•ื˜ื™ื ืงืœื™ื ื”ื ืงืจืื™ื ืกื™ื‘ื™ื.

ื”ืกืคืจื™ื™ื” ื”ืกื˜ื ื“ืจื˜ื™ืช ืžืกืคืงืช ืกื˜ ื’ื“ื•ืœ ืฉืœ ืคื•ื ืงืฆื™ื•ืช ื ืคื•ืฆื•ืช, ื›ื•ืœืœ ื›ืœื™ื ืœืขื™ื‘ื•ื“ CSV, YAML ื•-JSON, ืจื›ื™ื‘ื™ื ืœื™ืฆื™ืจืช ืฉืจืชื™ HTTP ื•ืชืžื™ื›ื” ื‘-WebSocket. ื‘ืžื”ืœืš ืชื”ืœื™ืš ื”ืคื™ืชื•ื—, ื ื•ื— ืœื”ืฉืชืžืฉ ื‘ืคืงื•ื“ื” "crystal play", ื”ืžื™ื™ืฆืจืช ืžืžืฉืง ืื™ื ื˜ืจื ื˜ (localhost:8080 ื›ื‘ืจื™ืจืช ืžื—ื“ืœ) ืœื‘ื™ืฆื•ืข ืื™ื ื˜ืจืืงื˜ื™ื‘ื™ ืฉืœ ืงื•ื“ ื‘ืฉืคืช Crystal.

ืฉื™ื ื•ื™ื™ื ืขื™ืงืจื™ื™ื:

  • ื ื•ืกืคื” ื”ื™ื›ื•ืœืช ืœื”ืงืฆื•ืช ืชืช-ืžื—ืœืงื” ืฉืœ ืžื—ืœืงื” ื’ื ืจื™ืช ืœืจื›ื™ื‘ ืฉืœ ืžื—ืœืงื” ืื‘. class Foo(T); end class Bar(T) < Foo(T); ืกื•ืฃ x = Foo x = Bar
  • ืคืงื•ื“ื•ืช ืžืืงืจื• ื™ื›ื•ืœื•ืช ื›ืขืช ืœื”ืฉืชืžืฉ ื‘ืงื• ืชื—ืชื•ืŸ ื›ื“ื™ ืœื”ืชืขืœื ืžืขืจืš ื‘ืœื•ืœืืช for. {% ืขื‘ื•ืจ _, v, i ื‘-{1 => 2, 3 => 4, 5 => 6} %} p {{v + i}} {% end %}
  • ื ื•ืกืคื” ืฉื™ื˜ืช "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.
  • ื”ืชืžื™ื›ื” ื‘ืืจื›ื™ื˜ืงื˜ื•ืจืช x32 ืฉืœ 86 ืกื™ื‘ื™ื•ืช ื”ื•ืขื‘ืจื” ืœืจืžื” ื”ืฉื ื™ื™ื” (ื—ื‘ื™ืœื•ืช ืžื•ื›ื ื•ืช ืœื ื ื•ืฆืจื•ืช ืขื•ื“). ื”ืขื‘ืจื” ืœืจืžื” ื”ืจืืฉื•ื ื” ืฉืœ ืชืžื™ื›ื” ื‘ืืจื›ื™ื˜ืงื˜ื•ืจืช ARM64 ืžืชื›ื•ื ื ืช.
  • ื”ืขื‘ื•ื“ื” ื ืžืฉื›ืช ื›ื“ื™ ืœื”ื‘ื˜ื™ื— ืชืžื™ื›ื” ืžืœืื” ื‘ืคืœื˜ืคื•ืจืžืช Windows. ื ื•ืกืคื” ืชืžื™ื›ื” ืขื‘ื•ืจ ืฉืงืขื™ Windows.
  • ื ื•ืกืคื” ื—ื‘ื™ืœื” ืื•ื ื™ื‘ืจืกืœื™ืช ืขื‘ื•ืจ macOS, ื”ืคื•ืขืœืช ื”ืŸ ืขืœ ืžื›ืฉื™ืจื™ื ืขื ืžืขื‘ื“ื™ x86 ื•ื”ืŸ ืขืœ ืฆื™ื•ื“ ืขื ืฉื‘ื‘ Apple M1.

ืžืงื•ืจ: OpenNet.ru

ื”ื•ืกืคืช ืชื’ื•ื‘ื”