JavaRush /Blog Jawa /Random-JV /Syarat Yoda
MAX
tingkat
Киров

Syarat Yoda

Diterbitake ing grup
Kiriman singkat khusus kanggo kabeh penggemar Star Wars lan Java / JavaRush kanggo ngurmati ulang tahun kaping 40 saka release Episode V saka saga bintang! Syarat Yoda - 1Kadhangkala sampeyan bisa nemokake akeh perkara sing menarik ing Internet, lan ing dina liyane aku nemoni praktik pemrograman sing rada lucu sing diarani kahanan Yoda . Singkatnya, kondisi Yoda (uga notasi Yoda) minangka gaya pemrograman ing ngendi rong bagéan saka ekspresi perbandingan sing akrab ing pernyataan kondisional dibalik:
if (5 == a) {
    // do something
}
Gaya iki bisa digunakake ing basa kanthi sintaks kaya C, paling asring ing ekspresi karo iflan while.
if (0 == variable) {
    // do something
}

while (false == endingCondition) {
    // do something
}
Napa ngganti ekspresi konstan ing sisih kiwa operator perbandingan? Ayo nganggep kahanan hipotetis sing, sawise ndeleng maraton kabeh sangang enem bagean Saga, kita, tanpa turu, lungguh kanggo nulis sawetara kode kanggo proyek pet kita lan nulis ing ngisor iki:
void checkNumber(int a)
{
    if (a = 13) // Здесь-то и появляется так называемый unexpected behavior!
    {
        printf("Number is 13");
    }
}
Ing kasus iki, saben-saben sampeyan mbukak program, sampeyan bakal nampa senar Number is 13", preduli saka argumentasi liwat аcara checkNumber(int a). Iki dudu sing dikarepake! Kesalahan logis bisa kedadeyan cukup asring ing antarane programer pemula (pracaya aku, aku ngerti). Nanging ing tahap kompilasi, kode kaya 13 = a bakal ngasilake kesalahan, sing mesthi ora bakal dilalekake, amarga nilai integer minangka konstanta lan, mulane, ora bisa diganti (dadi "a"). Syarat Yoda - 1

Ana pro lan kontra kanggo nggunakake kahanan Yoda.

Sisih cahya:

  1. Nyegah assignment kanggo variabel nalika goal kita comparison.

  2. Ngatasi masalah "Tindakan Null" sing ora aman ( NullPointerException) // conto saka Wikipedia

  3. Tanpa Yoda:

    String myString = null;
    if (myString.equals("foobar")) { /* ... */ }
    // This causes a NullPointerException in Java

    Kanthi Yoda:

    String myString = null;
    if ( "foobar".equals(myString) ) { // Результат - Ложь
       /* не выполняется */
    }

Sisih peteng:

  1. Keterbacaan kode kanggo wong sing bakal ndeleng kode sampeyan dadi luwih rumit, nambah beban ing persepsi kode kasebut.
  2. Orane katrangan sempit, mung comparison kanggo podo utawa comparison karo pancet digunakake, mriksa null.
  3. Akeh compiler wis "ndeleng" kasalahan saka jinis iki lan ngelekake ing advance bab ngarsane kesalahan potensial.
Alternatif kanggo notasi Yoda bisa dadi tes unit. Ing jaman Republik Lawas, ujar manawa nindakake tes sing apik bakal mesthekake yen kode kasebut ora ana kesalahan lan mung nindakake apa sing ditulis. Apa praktik migunani sing sampeyan ngerti? Nuduhake kawruh sampeyan ing komentar! Lan uga nulis episode favorit! Lan muga-muga Pasukan karo sampeyan!
Komentar
TO VIEW ALL COMMENTS OR TO MAKE A COMMENT,
GO TO FULL VERSION