Вы когда-нибудь замечали что 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)