Keluaran pengkompil bahasa D 2.100

Pembangun bahasa pengaturcaraan D membentangkan keluaran pengkompil rujukan utama DMD 2.100.0, yang menyokong sistem GNU/Linux, Windows, macOS dan FreeBSD. Kod pengkompil diedarkan di bawah BSL percuma (Lesen Perisian Boost).

D ditaip secara statik, mempunyai sintaks yang serupa dengan C/C++, dan menyediakan prestasi bahasa yang disusun, sambil meminjam beberapa kecekapan pembangunan dan faedah keselamatan bahasa dinamik. Contohnya, ia menyediakan sokongan untuk tatasusunan bersekutu, inferens jenis, pengurusan memori automatik, pengaturcaraan selari, pemungut sampah pilihan, sistem templat, komponen pengaturcaraan meta, keupayaan untuk menggunakan perpustakaan C dan beberapa perpustakaan C++ dan Objektif-C.

Antara perubahan dalam keluaran baharu:

  • Gaya lama operator lebih muatan yang digunakan di cawangan D1 telah dihentikan. Menggantikan opNeg, opAdd_r, opAddAssign, dsb. datang opUnary, opBinary, opBinaryRight dan opOpAssign. Gaya lama lebihan beban pengendali telah ditamatkan pada 2019 dan akan menimbulkan ralat pada keluaran 2.100.
  • Kata kunci padam telah ditamatkan sejak 2018. Daripada padam, anda harus menggunakan fungsi musnah atau core.memory.__delete.
  • Atribut @mustus baharu telah dilaksanakan yang boleh digunakan pada jenis struct dan kesatuan sebagai kaedah alternatif pengendalian ralat apabila kod tidak dapat mengendalikan pengecualian (contohnya, dalam blok @nogc). Jika ungkapan yang ditandakan dengan atribut @mustus tidak digunakan dalam kod, pengkompil akan menghasilkan ralat.
  • Untuk tatasusunan statik, penggunaan sifat ".tupleof" dibenarkan untuk mendapatkan jujukan nilai (lvalue) setiap elemen tatasusunan. void foo(int, int, int) { /* … */ } int[3] ia = [1, 2, 3]; foo(ia.tupleof); // analog foo(1, 2, 3); terapung[3] fa; fa.tupleof = ia.tupleof; // tugasan mudah fa = ia menghasilkan penegasan ralat(fa == [1F, 2F, 3F]);

Sumber: opennet.ru

Tambah komen