«operators» etiketlenmiş sorular

Programlama dilleri ile ilgili olarak, operatörler genellikle fonksiyonlar gibi davranan, ancak normal fonksiyonlardan sözdizimsel veya anlamsal olarak farklı olan yapılardır. Wikipedia'dan: http://en.wikipedia.org/wiki/Operator_%28programming%29

16
Kullanıcı tanımlı operatörler neden daha yaygın değil?
İşlevsel dillerden özlediğim bir özellik, işleçlerin yalnızca işlevler olduğu fikridir, bu nedenle özel bir işleç eklemek, genellikle bir işlev eklemek kadar basittir. Prosedürel dillerin birçoğu operatörün aşırı yüklenmesine izin verir, bu nedenle bazı durumlarda operatörler hala işlev görür (bu, operatörün bir şablon parametresinde bir dize olarak geçirildiği D için çok …

7
Kısa devre değerlendirmesi kötü uygulama mı?
Bir süredir tanıdığım ama hiç düşünmediğim bir şey, çoğu dilde, operatörlere sırasına göre if ifadesinde öncelik vermenin mümkün olduğudur. Bunu genellikle boş referans istisnalarını önlemenin bir yolu olarak kullanırım, örneğin: if (smartphone != null && smartphone.GetSignal() > 50) { // Do stuff } Bu durumda, kod ilk önce nesnenin boş …

15
Operatör aşırı yüklenmesine karşı argümanları anlamıyorum [kapalı]
Joel'in yazdığı yazılardan birini okudum : Genel olarak, bazı şeyleri gizleyen dil özelliklerinden biraz korktuğumu itiraf etmeliyim . Kodu gördüğünde i = j * 5; … C'de, en azından, j'nin beşle çarpıldığını ve sonuçların i'de depolandığını biliyorsunuz. Ama aynı kod parçasını C ++ 'da görürseniz, hiçbir şey bilmiyorsunuzdur. Hiçbir şey …


6
Neden '-' eksi işareti genellikle artı işaretiyle aynı şekilde aşırı yüklenmiyor?
Artı işareti +, toplama ve string bitiştirme için kullanılır, fakat onun arkadaşı: eksi işareti, -genellikle dizelerin kırpılması veya çıkarmadan başka bir durum için görülür. Bunun nedeni veya sınırlamaları ne olabilir? JavaScript'te aşağıdaki örneği göz önünde bulundurun: var a = "abcdefg"; var b = "efg"; a-b == NaN // but a+b …

2
Neden bitsel operatörler karşılaştırmalardan daha düşük önceliğe sahip?
Birisi gerekçeyi açıklayabilir mi, neden birçok popüler dilde (aşağıdaki nota bakınız) karşılaştırma işleçleri (==,! =, <,>, <=,> =) Bitsel operatörlerden daha yüksek önceliğe sahip olabilir (&, |, ^ , ~)? Bu önceliğin doğal olacağı bir kullanımla karşılaştığımı sanmıyorum. Her zaman gibi şeyler: if( (x & MASK) == CORRECT ) ... …


3
Python'da ** adı nedir?
Python programlamada bazen **dönüşüm yapmak için yapıyorum. Ne işe yaradığını anlıyorum ama hangi veri yapılarını değiştiriyorum? A dictve diğeri nedir? Bir array? **Operatör için bir isim var mı ?


9
Neden == işleç dizgisi değer karşılaştırması Java’ya gelmedi?
Her yetkili Java programcısı, == yerine dize karşılaştırmak için String.equals () kullanmanız gerektiğini bilir; çünkü == referans eşitliği için denetler. Dizelerle uğraşırken, çoğu zaman referans eşitliği yerine değer eşitliğini kontrol ediyorum. Bana göre dize değerleri sadece == kullanarak karşılaştırılabilirse, dil sezgisel olarak karşılaştırılabilir. Karşılaştırma olarak, C # 'ın == işleci …


7
Neden çoğu ana dil, 3 yollu Boole karşılaştırmaları için “x <y <z” sözdizimini desteklemiyor?
İki sayıyı (veya diğer iyi düzenlenmiş varlıkları) karşılaştırmak istersem, bunu yapardım x &lt; y. Üçünü karşılaştırmak istersem, lise cebir öğrencisi denemeyi önerecektir x &lt; y &lt; z. İçimdeki programcı "hayır, bu geçerli değil, yapmanız gerekiyor x &lt; y &amp;&amp; y &lt; z" ifadesiyle cevap verecektir . Karşılaştığım çoğu dil bu …

3
C ++ 'daki boolean türü neden ++ destekliyor?
Operatör --, bool için mevcut değil , operatör için mevcut değil ++mi? C ++ 'da denedim ve sorumun başka bir dile uygulanıp uygulanmadığını bilmiyorum. Ben de bildiğim için memnun olacağım. Biliyorum , operatörü ++bir bool ile kullanabilirim . Herhangi bir bool'u gerçeğe eşit yapar. bool b = false; b++; // …


9
Atama operatörünün bir değer getirmesinin faydası nedir?
Javascript ve PHP'yi değiştirmek istediğim bir dil geliştiriyorum. (Bununla ilgili herhangi bir sorun göremiyorum. Bu dillerden herhangi birinin geniş bir yükleme tabanına sahip olması gibi değil.) Değiştirmek istediğim şeylerden biri, atama operatörünü bir atama komutuna dönüştürmek ve döndürülen değeri kullanma yeteneğini ortadan kaldırmaktı. x=1; /* Assignment. */ if (x==1) {} …

Sitemizi kullandığınızda şunları okuyup anladığınızı kabul etmiş olursunuz: Çerez Politikası ve Gizlilik Politikası.
Licensed under cc by-sa 3.0 with attribution required.