Запитання з тегом «language-design»

Тег для питань, пов’язаних із дизайном будь-якого аспекту мов програмування.

22
Конвенції про винятки або коди помилок
Вчора у мене були бурхливі дискусії з колегою щодо того, що було б кращим методом повідомлення про помилки. В основному ми обговорювали використання виключень або кодів помилок для повідомлення про помилки між прикладними шарами чи модулями. Які правила ви використовуєте, щоб вирішити, чи викидаєте винятки чи повертаєте коди помилок для …


17
Чому в Java чи C # заборонено множинне спадкування?
Я знаю, що багаторазове успадкування заборонено на Java та C #. Багато книг просто кажуть, багаторазове успадкування заборонено. Але це можна реалізувати за допомогою інтерфейсів. Нічого не обговорюється, чому це не дозволено. Хтось може мені точно сказати, чому це не дозволено?

5
Чому в скобках конструктора об’єктів ініціалізатора об'єктів C # 3.0 необов’язкові?
Здається, що синтаксис ініціалізатора об'єктів C # 3.0 дозволяє виключити відкриту / закриту пару круглих дужок у конструкторі, коли існує конструктор без параметрів. Приклад: var x = new XTypeName { PropA = value, PropB = value }; На відміну від: var x = new XTypeName() { PropA = value, PropB …

5
Чому параметри const не дозволені в C #?
Це виглядає дивно, особливо для розробників C ++. У C ++ ми позначали параметр як constдля того, щоб бути впевненим, що його стан не буде змінено у методі. Існують також інші специфічні причини C ++, наприклад, проходження const ref, щоб пройти посилання і бути впевненим, що стан не буде змінено. …

7
PHP глобальний у функціях
У чому полягає корисність глобального ключового слова ? Чи є причини віддати перевагу одному методу іншому? Безпека? Продуктивність? Щось іще? Спосіб 1: function exempleConcat($str1, $str2) { return $str1.$str2; } Спосіб 2: function exempleConcat() { global $str1, $str2; return $str1.$str2; } Коли є сенс використовувати global? Для мене це видається небезпечним …

3
Нумерація місяця на основі нуля [закрито]
Наразі це запитання не підходить для нашого формату запитань. Ми очікуємо, що відповіді будуть підкріплені фактами, посиланнями або експертними знаннями, але це питання, ймовірно, вимагатиме дискусій, аргументів, опитувань чи розширеної дискусії. Якщо ви вважаєте, що це питання можна вдосконалити та, можливо, знову відкрити, відвідайте довідковий центр для ознайомлення . Закрито …


6
Викликання методу Java varargs з одним нульовим аргументом?
Якщо у мене є метод vararg Java, foo(Object ...arg)і я телефоную foo(null, null), я маю обидва arg[0]і arg[1]як nulls. Але якщо я зателефоную foo(null), argсам по собі нуль. Чому це відбувається? Як я повинен називати fooтакий, який foo.length == 1 && foo[0] == nullє true?

4
Буде замінити '::' на '. 'створювати двозначності в C ++?
У C ++ оператор ::використовується для доступу до класів, функцій та змінних у просторі імен чи класу. Якщо мовна специфікація, яка використовується .замість ::таких випадків, як і при зверненні до змінних екземплярів / методів об'єкта, це спричинило б можливі двозначності, яких немає ::? Зважаючи на те, що C ++ не …

7
Фактори в R: більше, ніж роздратування?
Одним з основних типів даних у R є фактори. З мого досвіду фактори - це, в основному, біль, і я ніколи їх не використовую. Я завжди перетворюю символи. Я почуваюся дивним чином, ніби чогось мені не вистачає. Чи є деякі важливі приклади функцій, які використовують фактори як групувальні змінні, де …


10
Чому C ++ не дозволяє успадковувати дружбу?
Чому дружба не є принаймні необов’язково успадковуваною в C ++? Я розумію, що транзитивність та рефлексивність заборонені із зрозумілих причин (я кажу це лише для того, щоб відмовитись від простих відповідей на цитати), але відсутність чогось подібного virtual friend class Foo;мене бентежить. Хтось знає історичну довідку цього рішення? Чи справді …

6
Чи є у будь-якої іншої мови, крім JavaScript, різниця між початковими фігурними дужками (той самий рядок і наступний рядок)?
Сьогодні, коли я випадково читав книгу O'Reilly про JavaScript, я знайшов одну цікаву річ (для довідки стор. 27). У деяких випадках у Javascript є різниця, якщо місце початку фігурної дужки інше. function test_function1() { return { name: 'rajat' }; } var obj = test_function1(); alert(obj); //Shows "undefined" Поки function test_function2() …

5
реалізація умовиводу типу
Я бачу тут кілька цікавих дискусій щодо статичного та динамічного набору тексту. Я, як правило, віддаю перевагу статичному набору тексту, завдяки перевірці типу компіляції, кращому документованому коду і т. Д. Однак я погоджуюсь, що вони дійсно захаращують код, якщо це робиться так, як це робить Java, наприклад. Тож я збираюся …

Використовуючи наш веб-сайт, ви визнаєте, що прочитали та зрозуміли наші Політику щодо файлів cookie та Політику конфіденційності.
Licensed under cc by-sa 3.0 with attribution required.