Вопросы с тегом «language-design»

Тег для вопросов, связанных с дизайном любого аспекта языков программирования.

4
Почему последняя часть имени метода Objective-C должна принимать аргумент (если их больше одной части)?
В Objective-C вы не можете объявлять имена методов, если последний компонент не принимает аргумент. Например, следующее недопустимо. -(void)take:(id)theMoney andRun; -(void)take:(id)yourMedicine andDontComplain; Почему Objective-C был разработан таким образом? Был ли это просто артефакт Smalltalk, от которого никто не видел необходимости избавляться? Это ограничение имеет смысл в Smalltalk, поскольку Smalltalk не имеет …

9
Зачем создавать язык с уникальными анонимными типами?
Это то, что меня всегда беспокоило как особенность лямбда-выражений C ++: тип лямбда-выражения C ++ уникален и анонимен, я просто не могу его записать. Даже если я создам две лямбда-выражения, которые синтаксически совершенно одинаковы, результирующие типы определены как разные. Следствием этого является то, что а) лямбда-выражения могут быть переданы только …

8
Каковы точки строгости Haskell?
Все мы знаем (или должны знать), что Haskell по умолчанию ленив. Ничего не оценивается до тех пор, пока не будет оценено. Итак, когда нужно что-то оценивать? Есть моменты, в которых Haskell должен быть строгим. Я называю это «точками строгости», хотя этот конкретный термин не так широко распространен, как я думал. …

4
Почему шаблон функции не может быть частично специализированным?
Я знаю, что спецификация языка запрещает частичную специализацию шаблона функции. Хотелось бы узнать, почему он это запрещает? Разве они не полезны? template<typename T, typename U> void f() {} //allowed! template<> void f<int, char>() {} //allowed! template<typename T> void f<char, T>() {} //not allowed! template<typename T> void f<T, int>() {} //not …

7
Невозможно установить атрибуты для экземпляра класса «объект»
Итак, я играл с Python, отвечая на этот вопрос , и обнаружил, что это неверно: o = object() o.attr = 'hello' из-за файла AttributeError: 'object' object has no attribute 'attr'. Однако для любого класса, унаследованного от объекта, это действительно так: class Sub(object): pass s = Sub() s.attr = 'hello' При …



8
Почему в Java возникает ошибка компилятора «недостижимый оператор»?
Я часто обнаруживаю, что при отладке программы удобно (хотя, возможно, и плохая практика) вставлять оператор возврата внутри блока кода. Я мог бы попробовать что-то подобное на Java .... class Test { public static void main(String args[]) { System.out.println("hello world"); return; System.out.println("i think this line might cause a problem"); } } …

4
Почему ваш тип данных оператора переключения не может быть длинным, Java?
Вот отрывок из руководств Sun по Java : Коммутатор работает с byte, short, charи intпримитивными типами данных. Она также работает с перечисленными типами (обсуждавшихся в классах и наследовании) и несколько специальных классов, «завернуть» некоторые примитивные типы: Character, Byte, Short, и Integer(обсуждаемый в объекты Simple Data). Должна быть веская причина, по …
Используя наш сайт, вы подтверждаете, что прочитали и поняли нашу Политику в отношении файлов cookie и Политику конфиденциальности.
Licensed under cc by-sa 3.0 with attribution required.