Dalam aplikasi berbasis Dart saya, saya hanya memperhatikan bahwa saya dapat menghilangkan new
kata kunci dan semuanya bekerja dengan baik.
Selain final widget = new Widget();
saya juga bisa menggunakan final widget = Widget();
.
Apakah ini berpengaruh pada kode?
new
atauconst
masih diperlukan (saya tidak ingat contoh atau aturan). Mereka mungkin mencoba lagi setelah Dart 2 untuk menjadikannya opsional di mana pun.new
yang dibutuhkan. Jika Anda menghilangkannew
dari program yang benar, program itu akan selalu bekerja dengan cara yang sama. Jika Anda menghapusconst
dari program kerja, maka dalam banyak kasus di mana Anda harus menulisconst
agar program tersebut valid, itu akan tetap valid. Setiap kali sudah adaconst
ekspresi yang mengelilingi, Anda bisa menghilangkan konstanta bertingkat.Dalam Dart 2, jika Anda memanggil konstruktor seperti fungsi, tanpa
new
atauconst
di depan, maka itu setara dengan menggunakannew
. Jika Anda menginginkan doa konstelasi, maka Anda harus meletakkannyaconst
di depan.Di dalam ekspresi const, Anda tidak perlu menulis
const
lagi, dan dalam beberapa konteks yang memerlukan ekspresi const (seperti ekspresi switch case dan penginisialisasi variabel const), Anda bahkan tidak memerlukan konstanta luar.Jadi, Anda tidak perlu menulis
new
.Tim bahasa Dart ingin mengizinkan ekspresi di mana Anda dapat menyisipkan salah satu
new
atauconst
dan masih memiliki pemanggilan yang benar (yaitu, konstruktor const dengan argumen konstan) ke default untuk menyisipkanconst
alih-alihnew
, semoga dalam pembaruan awal ke Dart 2. Untuk alasan itu , Saya sarankan menulisnyanew
di depanObject()
, atau konstruktor const lainnya di mana Anda memerlukan objek untuk menjadi instance baru. Itu kasus yang sangat jarang, biasanya Anda tidak peduli dengan identitas objek tetap Anda (itulah sebabnya memasukkanconst
dianggap ide yang bagus).sumber
Seperti yang dinyatakan semua jawaban lain, di Dart 2, penggunaan
new
adalah opsional. Selain itu, penggunaannew
tidak disarankan oleh pedoman Effective Dart .sumber
Kata
new
kunci dibuat opsional di Dart 2. Saat ini, memanggil kelas akan selalu mengembalikan instance baru dari kelas itu. Sesuai rekomendasi saya, Anda dapat menggunakannya ( TIDAK WAJIB ) di luar definisi Tata Letak, tetapi hilangkan di dalam Tata Letak.Satu hal lagi yang ingin saya bagikan kepada kalian adalah jika Anda menggunakan
new
atauconst
kata kunci saat mendeklarasikan widget , Anda juga dapat melihat ikon + yang dapat Anda gunakan untuk menutup dan memperluas kode badan widget. Ini berguna ketika Anda ingin menutup / menyembunyikan kode widget lainnya di file dart saat mengerjakan kode widget lain di file yang sama.sumber
new
tidak disarankan: menggunakannya sepertinya tanpa syarat membuat instance baru padahal mungkin tidak.