Вы когда-нибудь замечали что print
(echo
или подобное) в различных языках программирования часто является одной из самых сложных для понимания новичкам функция
Из всех основных языков программирования, который знаю (в частности C, C++ и Python), эта функция является реально сложной
Давайте посмотрим
Python
print()
в Python использует:
-
*args
, за счёт чего мы можем выводить несколько объектов, написанных через запятую - допускает, чтобы мы отправляли аргументы любого типа
- также это первая для новичков функция, в которой из-за
*args
, да и в целом количества аргументов мы использовали синтаксисarg=value
(например,print(2, 2, sep=" + ")
C
printf()
в C использует:
- модификаторы, что требует понимания и знания типов данных, знания какие модификаторы вообще существует (хоть это и не конструкция языка, а возможность самой функции, как и нескольких других функций из стандартной библиотеки, собственно из-за этого у них
f
на конце,formatted
) - переменное количество аргуметов (
va_args
), что далеко не везде вообще изучается
C++
<<
в C++ это вообще отдельная песня:
-
std::cout
— это не функция, и не причина вывода, — это лишь экземпляр классаostream
-
<<
— это функции-операторы, а не оператор побитового смещения - причем я не зря сделал жирным множественное число, ведь это несколько функций, которые используют перегрузку функций, чтобы они могли работать с разными типами данных
- то, что тут используется пространство имён
- то, что нам пришлось бы писать на самом деле
std::operator<<()
, если бы не поиск Кёнига, о котором даже не все программисты не новички знают, который позволял использовать функции без записывания пространств имён для её вызова
Может быть это только (или почти только) в этих 3 языках?
Top comments (0)