Первый выдаст исключение, если исходный тип не может быть брошен к целевому типу. Последний приведет к sc2, являющемуся нулевой ссылкой, но никаким исключением.
[Редактирование]
Мой исходный ответ является, конечно, самым явным различием, но поскольку Eric Lippert указывает , это не единственное. Другие различия включают:
И наконец, с помощью 'в качестве' по сравнению с оператором броска, Вы также говорите, что "я не уверен, успешно выполнится ли это".
Да, обработка 2.5.1 -o
была ошибочной:
http://www.mail-archive.com/ bug-grep@gnu.org /msg00993.html
Grep, вероятно, не подходящий инструмент для этого; sed
или tr
или даже perl
могут быть лучше в зависимости от фактической задачи.
Это даст аналогичные результаты:
echo abc123def | sed -n 's/[^0-9]*\([0-9]\+\).*/\1/p'
Ваш вопрос почти дублирует этот .
вы можете использовать оболочку. это быстрее
$ str=abc123def
$ echo ${str//[a-z]/}
123