2014-10-25 4 views
0

Что такое идиома Цейлона, указывающая, что функция не реализована? Я часто хочу увидеть, будет ли дизайн проверяться на тип, прежде чем решить проблему с выполнением всех функций. Предположительно, это означает, что тело выдает ошибку, которая имеет тип Nothing и может быть назначена любой функции. Это также полезно для обмена примером кода, когда реализация не имеет значения.Ошибка Цейлона

Похоже, некоторые люди используют UnsupportedOperationException от Java, как это:

Integer add(Integer a, Integer b) {throw UnsupportedOperationException();} 

Но это слишком многословным, чтобы лавировать на кучу методов класса. Я ищу что-то подобное в Scala симпатично названный ??? как в:

def add(a: Int, b: Int): Int = ??? 

ответ

3

На самом деле, nothing встроенный в верхнем уровне добытчика вы можете вызвать:

Integer add(Integer a, Integer b) => nothing; 

Это может выглядеть как объект возвращается, но на самом деле он выдает исключение во время выполнения, как только оно будет достигнуто.

+1

Да, это хорошо, потому что оно будет генерировать исключение, когда оно будет оценено, и IDE удалит предупреждение об этом, которое служит напоминанием о его реализации позже. – gdejohn

+0

Я просто хочу добавить, что 'ничего 'не является примитивным вообще: это нормальное значение, [внедрено в регулярном Цейлоне] (https://github.com/ceylon/ceylon.language/blob/1.1.0/src /ceylon/language/nothing.ceylon), и вы также можете написать свой собственный. (Тип * * «Ничего» не является «примитивным», хотя - единственным типом языка, который не может быть выражен на Цейлоне.) –

+0

@ lucas.werkmeister спасибо, я отредактировал свой ответ, чтобы уточнить это. – drhagen

 Смежные вопросы

  • Нет связанных вопросов^_^