eugenk |
|
Темы:
1
Сообщения:
21
Участник с: 15 января 2015
|
nafanjaКак бы по моему это скорее вещь удобная и компилятору и человеку. Нет, насчет незаменимости даже не спорю, писать можно хоть на брейнфаке и машине Тьюринга. Просто есть концепции более естественные и удобные, а есть менее естественные и удобные. С типизацией в частности если рассматривать это дело на самом низком уровне, любой объект это не более чем хранилище байтов. Т.е. как раз тот самый произвольный тип. Но он для нас абсолютно бесполезен, если мы не знаем что там храниться и как с этим работать. Поэтому всегда, даже работая с динамическими типами, мы подразумеваем, что в конкретный момент времени данные имеют совершенно определенный тип. Так не проще ли указывать это явно ? По крайней мере текст программы это сделает намного яснее. Комментарии конечно рулят. Но по-моему лучше возложить это дело на механизмы самого языка. nafanjaВидите, получается что Ваша безопасность зависит от того, насколько умна IDE и насколько хорошо кто-то пишет документирующие комментарии, понятные IDE. Кстати да, тут продукты от JB на высоте. Но по-моему это не более чем костыли для негодной концепции самого языка. |
nafanja |
|
![]()
Темы:
94
Сообщения:
9252
Участник с: 02 июня 2012
заблокирован
|
eugenktmp = '4' какой тип данных в tmp? правильно символ, зачем явно объявлять что tmp имеет тип символ, да еще и запрещать потом в tmp поместить число? tmp = 1
Псевдографический инсталлятор Arch Linux ver. 3.8.2
Благодарности принимаются на ЯД 410012815723874 |
corner |
|
Темы:
6
Сообщения:
773
Участник с: 21 июля 2011
|
Или строка? Если символ, то занимает,скорее всего слово. Если строка, то уже массив со всеми вытекающими. Теперь попробуйте изменить тип данных на фиксированное число - освободить память, создать новую структуру, проверить и реорганизовать ссылки, собрать мусор и т.д. А если новое значение - float, double...? Поэтому интерпретаторы и работают медленне |
eugenk |
|
Темы:
1
Сообщения:
21
Участник с: 15 января 2015
|
nafanjaЭлементарно. Символ это не есть число. Даже если мы говорим о байтах, а не о строках, '4'=0х34 в ASCII-кодировке. Число 4 это 0x04. Поэтому если мы даже говорим о байтах, всё равно им требуется некоторый механизм интерпретации. На С мы просто говорим char. И можем присваивать сюда хоть 0х34='4', хоть 4, хоть 1. Под личную ответственность. |
nafanja |
|
![]()
Темы:
94
Сообщения:
9252
Участник с: 02 июня 2012
заблокирован
|
вообще я говорил о неявной, но очевидной записи типа tmp = '4' (в кавычках) tmp = 1 (без кавычек) cornerсовершенно верно, строка = массив символов, символ = строка с одним компонентом. eugenkнужно абстрагироваться от данного типа мышления наложенного ограничениями статической типизации. переменная tmp может быть как символом, так и строкой а раз состоит из цифровых символов то и числом, а интерпретируется она в нужный тип в зависимости от производимых над ней действий, по определенным правилам. суть в том что интерпретатор знает какой тип у данной переменной в любой промежуток во время выполнения, а чистый бинарник не знает, в него уже заложены жесткие параметры. а все завязано на работе с памятью как выше заметил corner, поэтому интерпретируемому языку не нужно статическое определение типов. описание типа нужно только человеку и IDE, в результате чего и придуманы форматы комментариев.
Псевдографический инсталлятор Arch Linux ver. 3.8.2
Благодарности принимаются на ЯД 410012815723874 |