Java Academy · Pelajaran

Corak Record

Nyahstrukturkan record dalam corak

Pelajaran 2 daripada 413 langkah

Corak Record ialah pelajaran Java Academy percuma di CoddyKit. Ini ialah pelajaran 2 daripada 4. Anda boleh membaca keseluruhan pelajaran di bawah secara percuma — kemudian berlatih secara praktikal dalam pelayar menggunakan penyunting kod terbina dalam dan tutor kecerdasan buatan 24/7. Pelajaran ini merupakan sebahagian daripada laluan pembelajaran Java Academy, dan kemajuan anda disegerakkan merentas web serta aplikasi CoddyKit. Kursus Java Academy merangkumi sejumlah 4 pelajaran.

Corak Rekod

Corak rekod memadankan rekod dan menyahstrukturnya, lalu mengikat komponennya kepada pemboleh ubah dalam satu langkah. Anda tidak perlu lagi memanggil setiap pengakses secara manual.

Rekod untuk Dinyahstrukturkan

Mulakan dengan rekod yang ringkas. Komponennya ialah perkara yang boleh diekstrak oleh corak.

public class Main {
    record Point(int x, int y) {}

    public static void main(String[] args) {
        Point p = new Point(3, 4);
        System.out.println(p.x() + ", " + p.y());
    }
}

Menyahstruktur dengan instanceof

Daripada menulis instanceof Point p kemudian p.x(), tulis instanceof Point(int x, int y) untuk mengikat x dan y secara terus.

public class Main {
    record Point(int x, int y) {}

    public static void main(String[] args) {
        Object obj = new Point(3, 4);
        if (obj instanceof Point(int x, int y)) {
            System.out.println("Sum: " + (x + y));
        }
    }
}

Komponen Menjadi Pemboleh Ubah Tempatan

Nama dalam corak (x, y) ialah pemboleh ubah tempatan baharu yang menyimpan nilai komponen rekod. Anda boleh memilih namanya; nama itu tidak perlu sama dengan nama dalam rekod.

public class Main {
    record Point(int x, int y) {}

    public static void main(String[] args) {
        Object obj = new Point(10, 20);
        if (obj instanceof Point(int a, int b)) {
            System.out.println("a=" + a + " b=" + b);
        }
    }
}

Menggunakan var dalam Corak

Anda boleh menulis var untuk sesuatu komponen supaya pengompil membuat kesimpulan tentang jenisnya. Ini berguna apabila jenis tersebut panjang.

public class Main {
    record Pair(String key, Integer value) {}

    public static void main(String[] args) {
        Object obj = new Pair("age", 30);
        if (obj instanceof Pair(var key, var value)) {
            System.out.println(key + " = " + value);
        }
    }
}

Corak dalam Pernyataan Pemilihan

Corak rekod juga berfungsi dalam pernyataan pemilihan, lalu menjadikan cabang kes kelihatan seperti bentuk data.

public class Main {
    record Point(int x, int y) {}

    static String classify(Object obj) {
        return switch (obj) {
            case Point(int x, int y) when x == y -> "on diagonal";
            case Point(int x, int y) -> "at " + x + "," + y;
            default -> "not a point";
        };
    }

    public static void main(String[] args) {
        System.out.println(classify(new Point(5, 5)));
        System.out.println(classify(new Point(1, 2)));
    }
}

Padanan dengan Inferens Jenis

Jenis komponen dalam corak mestilah serasi dengan jenis yang diisytiharkan oleh rekod. Menggunakan jenis tepat atau var ialah pilihan yang selamat.

Menggabungkan dengan Syarat Pengawal

Tambahkan syarat pengawal when selepas corak rekod untuk memadankan hanya apabila nilai yang dinyahstrukturkan memenuhi sesuatu syarat.

public class Main {
    record Temperature(double celsius) {}

    static String alert(Object o) {
        if (o instanceof Temperature(double c) && c > 38.0) {
            return "fever: " + c;
        }
        return "normal";
    }

    public static void main(String[] args) {
        System.out.println(alert(new Temperature(39.5)));
        System.out.println(alert(new Temperature(36.6)));
    }
}

Capaian Data yang Lebih Kemas

Corak rekod amat berguna apabila anda hanya memerlukan beberapa medan. Corak ini menghapuskan rantaian panggilan pengakses dan menjadikan data yang berkaitan jelas di tempat padanan.

Nilai Kosong dan Corak Rekod

Seperti semua corak instanceof, corak rekod adalah palsu untuk nilai kosong. Penyahstruktur berlaku hanya selepas nilai itu disahkan sebagai tika rekod yang bukan kosong.

Contoh Praktikal

Nyahstrukturkan rekod untuk mengira nilai terus daripada komponennya.

public class Main {
    record Rectangle(int width, int height) {}

    static int area(Object o) {
        if (o instanceof Rectangle(int w, int h)) {
            return w * h;
        }
        return 0;
    }

    public static void main(String[] args) {
        System.out.println(area(new Rectangle(4, 5)));
        System.out.println(area("not a rect"));
    }
}

Semakan Pantas

Uji pemahaman anda tentang corak rekod.

Ringkasan

Anda telah mempelajari corak rekod.

  • Corak ini menguji jenis rekod dan menyahstrukturkan komponennya serentak.
  • Nama komponen ialah pemboleh ubah tempatan baharu yang anda pilih; var membuat kesimpulan tentang jenisnya.
  • Corak ini berfungsi dalam instanceof dan switch.
  • Seperti semua corak, corak ini adalah palsu untuk nilai kosong.
Percuma untuk bermula

Pelajari Java dengan tutor kecerdasan buatan — percuma

Tulis dan jalankan kod sebenar dalam pelayar anda, dapatkan bantuan segera daripada tutor kecerdasan buatan yang tersedia 24/7, dan sambung semula dari tempat anda berhenti di web atau dalam aplikasi.

Kursus
104
Pelajaran
374

Soalan Lazim

Adakah pelajaran “Corak Record” percuma?

Ya — teks penuh “Corak Record” boleh dibaca secara percuma di web ini. Untuk berlatih secara interaktif menggunakan penyunting kod terbina dalam dan tutor kecerdasan buatan 24/7, serta membuka kunci baki kursus Java Academy, tingkat taraf kepada CoddyKit PRO. Kursus Java Academy merangkumi sejumlah 4 pelajaran.

Apakah yang akan saya pelajari dalam “Corak Record”?

Nyahstrukturkan record dalam corak Anda berlatih Java Academy menggunakan kod praktikal yang dijalankan terus dalam pelayar, manakala tutor kecerdasan buatan 24/7 menjawab soalan anda semasa anda mengikuti pelajaran.

Adakah saya memerlukan pengalaman untuk memulakan Java Academy?

Tiada pengalaman terdahulu diperlukan. Pembelajaran Java Academy di CoddyKit disusun untuk pelajar daripada peringkat pemula hingga lanjutan, jadi anda boleh bermula di sini atau dari awal dan belajar mengikut kadar anda sendiri. Ini ialah pelajaran 2 daripada 4.

Berapa lamakah pelajaran “Corak Record” diambil?

Kebanyakan pelajaran CoddyKit mengambil masa kira-kira 5–10 minit. Setiap pelajaran ringkas dan interaktif, jadi anda boleh membuat kemajuan secara berterusan dan menyambung tepat dari tempat anda berhenti di web atau aplikasi.

Bolehkah saya menulis dan menjalankan kod dalam pelajaran Java Academy ini?

Ya. Setiap pelajaran Java Academy menyertakan penyunting kod terbina dalam, jadi anda boleh menulis dan menjalankan kod sebenar terus dalam pelayar serta menerima maklum balas kecerdasan buatan serta-merta — tanpa memerlukan persediaan setempat.

Semua pelajaran dalam kursus ini

  1. Padanan Corak untuk instanceof
  2. Corak Record
  3. Corak Record Bersarang
  4. Corak dalam switch
← Kembali ke Java Academy