Kötü kodlama büyüsü, vurdun mu?

Yukarıdaki "CSDN" yi tıklayın ve takip etmeyi seçin

Kritik anda teslim edin!

Gary Bernhardt tarafından önerilen videoyu izlediğimden beri, bazı programlama dillerinin tuhaf performansı beni büyüledi. Bazı programlama dillerinin diğerlerinden daha şaşırtıcı performansları vardır. Örneğin: Java dili hakkında, özellikle uç sınıfını (Edge) ve bazı özelliklerini tanıtan koca bir kitap var. Buna bağlı olarak, C ++ dili için, 200 dolara mal olabilen standart özelliklerine başvurabiliriz.

Aşağıda en sevdiğim içerik, bazı şaşırtıcı, komik içerikler ve bazıları da lanet gibi. Genel olarak konuşursak, bu kodları özel davranışlarla kullanmak kötü olarak kabul edilir çünkü kodunuz insanlara bir sürpriz hissi vermemelidir. Aşağıdaki aptalca davranışları yapmakta ısrar ederseniz, size eşit olacak birçok yabancı olacaktır. Bunu söyledikten sonra, bilgi güçtür, başlayalım.

Python 2'de True'nun yanlış yeniden atanması

İngilizce kafiyede Two ve True telaffuzları, ancak anlamsızlar.

Neyse ki Python 3, True, False ve None'ı ayrılmış sözcükler olarak benimsediğinden, tekrarlanan atamalar SyntaxError gibi hatalar üretecektir. Ancak böyle garip bir yaklaşım, başkalarının standart başlık dosyalarında #define true false kullanmaktan çok daha azdır.

Java ve Python dillerinde inanılmaz performans

Java programcıları için, "==" operatörünün anlam bilgisi genellikle kafa karıştırıcıdır. Bununla birlikte, bazı önemsiz senaryolarda bile, operatörlerin tutarsız performansı durumu daha karmaşık hale getirecektir. Bunu yapmak bile program yürütme verimliliğini artırabilir.

Arada, JVM aynı referansı kullanacaktır. Daha şaşırtıcı olan, python dilinin de aynı davranışa sahip olmasıdır.

Negatif olsa bile sonuç aynıdır.

Aynı örnek kodda, python dil yorumlayıcısının tamsayı aralığının alt sınırı -5 olarak görünmektedir. Aralıktaki tam sayılar aynı ID değerini alır, bu daha da gariptir.

Yıkıcı atamanın kullanılması mevcut kuralları değiştirecek gibi görünüyor. Neden böyle olduğunu bilmiyorum, aslında bir yığın taşması sorunuyla karşılaştım ve anlamaya çalıştım. Tahminimce bellekteki bir listedeki yinelenen değerler aynı nesneyi işaret ediyor.

C dilinde ters alt simge

Ters abonelikler, herhangi bir geliştirici için bir baş ağrısıdır.

Bu yazının işe yaramasının nedeni, dizinin aslında sadece * (dizi + dizin) sözdizimsel şekeri olmasıdır. Bu değiştirilebilirlik sayesinde, aynı sonucu elde etmek için dizi adını ve indeksini değiştirebiliriz.

C dilinde "her zaman git" operatörü

operatörünü ilk gördüğümde, bir sözdizimi hatası gibi görünüyordu. Derlendiğinde, belgelenmemiş bir dil özelliği gibi görünür. Ancak bu fikirler yanlıştır.

Operatör aslında verilen örnekte (x--) olarak ayrıştırılan iki operatördür. > 0. Hepimizin bildiği gibi, bunu yapmak bitmiş yazılımda önemli kaosa neden olur ve son derece kötüdür.

C dilinde sizeof operatörü

Sizeof operatörü, ilginç özellikler sağlayan bir derleme zamanı operatörüdür.

Sizeof operatörünün örneği derleme zamanında hesaplandığından, x + = 1 çalıştırılmayacaktır. Aynı zamanda ilginç: araştırmalar göstermiştir ki printf kod satırının ("wtf?") Hiçbir zaman yığına itilmeyecek en tipik durumdur.

Lua, Smalltalk, MATLAB ve daha fazla dil için dizinler 1'den başlar

/ r / ProgrammerHumor / Bu dizinde 1'den başlayarak birçok şaka var. Şaşırtıcı bir şekilde, aslında, birçok programlama dilinin dizi dizini 1'den başlar.

Ruby dilinde 0 değeri doğrudur

... Ve sadece Ruby dili.

Düzeltme: Biri reddit sitesinde aynı şeyin Lua, Lisp ve Erlang dilleri için de geçerli olduğunu belirtti.

C dilinde Trigraph, Digraph ve Token

Tarihsel nedenlerden dolayı, C dilindeki harf olmayan ve rakam olmayan sembollerin ikameleri vardır.

IBM3270 gibi bazı yabancı ekipman, C / C ++ 'da yaygın olarak kullanılan bazı sembolleri sağlamaz, bu nedenle digraph, trigraph ve token, belirli karakter kümelerine karşı ayrım yapmamak amacıyla sağlanır.

Umarım bu makale sizin için ilginçtir ve reddit web sitesinde tartışılabilir.

Orijinal bağlantı:

Eser sahibi: Jekyll

Çevirmen: Bai Yunpeng

Kutsama yazmak için büyük seti ziyaret edin! Qingdao'nun sahne sanatları dünyasının yıldızları Lingshan Körfezi'nde parlıyor, film yapımcıları Yeni Yıl için evlerine dönüyor
önceki
Yeni Chase D90'ın casus fotoğrafları, elektronik vites kolları / 2019'un üçüncü çeyreğinde listelendi
Sonraki
Birinin 40 yıl içinde yüz yuan için bir suç işlediğinden şüphelenildi, insanlar asla para kazanmaya cesaret edemediler
Voleybol ligine odaklanın | BAIC kadın voleybol takımı Shandong'u 3-2 yenilgiye uğrattı, kaptan Liu Xiaotong dirsek sakatlığı için mücadele ediyor
Kelebek etkisi: Abramovich Chelsea yerine Arsenal satın alsaydı ...
Kia'nın yayınlanan resmi haritanın yeni Ceed spor seyahat versiyonu, çeşitli güçler sağlıyor
"Soğuk havanız" yarın gelecek, lütfen kontrol edin ~
Yizhi Auto'nun 2019 yeni araba planı küçük elektrikli araçlara odaklanıyor
3. Genç ve Orta Yaşlı Finans Araştırmacıları Forumu, Zhejiang Finans ve Ekonomi Üniversitesi'nde düzenlendi
Pekin'in 276 önemli projesinin en son ilerlemesi açıklandı. Alt merkezler, demiryolu taşımacılığı, uygun fiyatlı konut ... tüm ilgilendiğiniz burada
Yeni Suzuki WagonR fragmanı ortaya çıktı, hafızadaki Büyük Kepçe böyle oldu
Aniden arkadaş çevresinin ekranını kaydırmak, Budist ailede kurbağa yetiştirmenin nedeni nedir?
Zhang Xiaolong'un "Jump" ı 6000 puana ulaştı, WeChat mini oyunlarının gelişmiş gelişiminde ustalaşmanın zamanı geldi
Yeni Yılda tekrar evlenmeye mi çağırıldı? Qingdao'daki bekar profesyonellerin% 60'ından fazlası
To Top