|
|
|
Компилятор не предупреждает об ошибке сравнения переменных String и Integer
|
|||
|---|---|---|---|
|
#18+
Код: plaintext 1. 2. 3. 4. 5. 6. 7. 8. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 11.12.2006, 12:02 |
|
||
|
Компилятор не предупреждает об ошибке сравнения переменных String и Integer
|
|||
|---|---|---|---|
|
#18+
В бэйсике с этим всё в порядке, а вот в дельфе бы такое не прокатило. там бы надо было преобразовывать integer в string. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 11.12.2006, 12:16 |
|
||
|
Компилятор не предупреждает об ошибке сравнения переменных String и Integer
|
|||
|---|---|---|---|
|
#18+
Только Delphi предупреждает об ошибке? ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 11.12.2006, 12:24 |
|
||
|
Компилятор не предупреждает об ошибке сравнения переменных String и Integer
|
|||
|---|---|---|---|
|
#18+
об ошибке не предупреждает и варинги не дает, а вот если ошибка будет, то тогда вылетит есть другой вариант - Val аффтопитезь ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 11.12.2006, 12:43 |
|
||
|
Компилятор не предупреждает об ошибке сравнения переменных String и Integer
|
|||
|---|---|---|---|
|
#18+
кроме delphi и бейсика ничего не пробовала. пусть напишут те, кто другие языки пробовал. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 11.12.2006, 12:43 |
|
||
|
Компилятор не предупреждает об ошибке сравнения переменных String и Integer
|
|||
|---|---|---|---|
|
#18+
Настенькакроме delphi и бейсика ничего не пробовала. пусть напишут те, кто другие языки пробовал. в других языках сделано гораздо приличней, и долговременная операция конвертации делается только вручную. а VB- это так..., залетно ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 11.12.2006, 12:44 |
|
||
|
Компилятор не предупреждает об ошибке сравнения переменных String и Integer
|
|||
|---|---|---|---|
|
#18+
Наскольк я знаю, visual basic - это единственный язык который настолько умен. Правда цена за это - пресловутый оператор Set. Все другие basic-и, и вообще другие языки сами не выполняют такие сложные преобразования типов. Даже SQL. Надо всегда помнить про закулисные преобразования типов и когда потребуется - "помочь" компилятору VB. Можно бы изучить все правила по которым работают вариантные переменные, но лучше просто приводить явно к одному типу оба операнда в проверке условия. Строгая типизация языков - это хорошо, но все равно приходится иметь дело с преобразованиями типов которые только в ран-тайме дадут ошибки. Например, преобразовать строку из файла или из контрола в дату или число. У вас могут быть две записи в текстовой строке, хранящие одинаковые данные, но различные по тексту. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 11.12.2006, 13:03 |
|
||
|
Компилятор не предупреждает об ошибке сравнения переменных String и Integer
|
|||
|---|---|---|---|
|
#18+
Мне бы хотелось, что бы компилятор не дал бы создать exe файл, пока не будут исправлены подобные ошибки. Настенька подсказывает, что Delphi - такой язык. А кроме Delphi ? Какие ещё компиляторы предупредупреждают такие ошибки ? ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 11.12.2006, 13:27 |
|
||
|
Компилятор не предупреждает об ошибке сравнения переменных String и Integer
|
|||
|---|---|---|---|
|
#18+
klen_Мне бы хотелось, что бы компилятор не дал бы создать exe файл, пока не будут исправлены подобные ошибки. Настенька подсказывает, что Delphi - такой язык. А кроме Delphi ? Какие ещё компиляторы предупредупреждают такие ошибки ? великий и ужасный си. (если ты вообще понимаешь, что пишешь, то рабооать будет) ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 11.12.2006, 16:31 |
|
||
|
Компилятор не предупреждает об ошибке сравнения переменных String и Integer
|
|||
|---|---|---|---|
|
#18+
А С ++? ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 11.12.2006, 16:36 |
|
||
|
Компилятор не предупреждает об ошибке сравнения переменных String и Integer
|
|||
|---|---|---|---|
|
#18+
klen_А С ++? см. пост выше паскаль еще (но делфя - его следующая модель эволюции) ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 11.12.2006, 17:21 |
|
||
|
Компилятор не предупреждает об ошибке сравнения переменных String и Integer
|
|||
|---|---|---|---|
|
#18+
klen_ Если поставить Option Explicit, то сразу окажется, что вы забыли отдекларировать переменную var_int. Отдекларируйте ее, и тогда Компилятор сразу начнет предупреждать об ошибке сравнения переменных String и Integer: Run-time error '13': Type mismatch. Настенька, В бэйсике с этим всё в порядке, но не в том смысле, как вы думаете. Всем успехов. VladConn ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 11.12.2006, 18:32 |
|
||
|
Компилятор не предупреждает об ошибке сравнения переменных String и Integer
|
|||
|---|---|---|---|
|
#18+
VladConnОтдекларируйте ее, и тогда Компилятор сразу начнет предупреждать об ошибке сравнения переменных String и Integer:Эээ... Option Explicit отвечает все-таки за обязательную декларацию, но никак не за сравнение. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 11.12.2006, 21:13 |
|
||
|
Компилятор не предупреждает об ошибке сравнения переменных String и Integer
|
|||
|---|---|---|---|
|
#18+
Ну и что? Там товарищ выдавал Variant за Integer, не осознавая этого, как раз из-за отсутствия Option Explicit. И сравнение проскальзывало без проблем как раз из-за отсутствия Option Explicit. Ведь Variant принимает любой тип. Т.е. косвенно именно отсутствие Option Explicit привело к невыявлению ошибки несоответствия типов. Несоответствия типов просто не было . А с Option Explicit было бы. И какая разница: в процессе сравнения или вычитания со сложением. Visual Basiс может простить какую-то небрежность при, например, конкатенации строк и чисел, преобразуя "сумму" в новую строку, это да. Меня лично такая небрежность раздражает, и я всегда стараюсь преобразовывать типы сам, не полагаясь на компилятор. По-крайней мере, это демонстрирует осознанность действий кодирующего и его сознательность. По этой же причине я никогда не использую знак "+" при конкатенации строк, а только "&". Tогда если попадутся числа, а не строки, пусть по очень маловероятной причине, то сложения не произойдет. VladConn ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 11.12.2006, 22:54 |
|
||
|
Компилятор не предупреждает об ошибке сравнения переменных String и Integer
|
|||
|---|---|---|---|
|
#18+
мне вот этот option explicit вообще раздражает. надо все переменные объявлять. без него всё хорошо работает. вспоминаю дельфю, делали курсовик по математике, так там floattostr, strtofloat, inttostr, strtoint были чуть ли не в две строки. выглядело всё очень некрасиво и нечитаемо. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 12.12.2006, 05:21 |
|
||
|
Компилятор не предупреждает об ошибке сравнения переменных String и Integer
|
|||
|---|---|---|---|
|
#18+
VladConnЕсли поставить Option Explicit, то ... Указал Код: plaintext 1. 2. 3. 4. 5. 6. 7. 8. 9. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 12.12.2006, 07:38 |
|
||
|
Компилятор не предупреждает об ошибке сравнения переменных String и Integer
|
|||
|---|---|---|---|
|
#18+
Прекрасно он ругается, пишет type mismatch - несовпадение типов. сейчас то что не так? ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 12.12.2006, 08:04 |
|
||
|
Компилятор не предупреждает об ошибке сравнения переменных String и Integer
|
|||
|---|---|---|---|
|
#18+
Настенькамне вот этот option explicit вообще раздражает. 5 баллов! Worobjoff Все другие basic-и, и вообще другие языки сами не выполняют такие сложные преобразования типов. Даже SQL. Вы не правы, T-SQL тоже выполняет сам такие преобразования. А вот PL/SQL - нет. klen_Настенька подсказывает, что Delphi - такой язык. Настенька ошибается, Delphi - это не язык, а среда программирования. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 12.12.2006, 09:54 |
|
||
|
Компилятор не предупреждает об ошибке сравнения переменных String и Integer
|
|||
|---|---|---|---|
|
#18+
VladConnНу и что? Там товарищ выдавал Variant за Integer, не осознавая этого, как раз из-за отсутствия Option Explicit. И сравнение проскальзывало без проблем как раз из-за отсутствия Option Explicit. Ведь Variant принимает любой тип. Т.е. косвенно именно отсутствие Option Explicit привело к невыявлению ошибки несоответствия типов. Несоответствия типов просто не было. А с Option Explicit было бы. И какая разница: в процессе сравнения или вычитания со сложениемТогда уж объявить как Integer , а не просто объявить . ;) ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 12.12.2006, 10:41 |
|
||
|
Компилятор не предупреждает об ошибке сравнения переменных String и Integer
|
|||
|---|---|---|---|
|
#18+
Я говорю, компилятор не ругается, когда создаю exe файл - не ругается. А то что в момент выполнения выходит сообщение type mismatch это уже любой язык, среда, интерпретатор, об этом скажет. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 12.12.2006, 12:57 |
|
||
|
Компилятор не предупреждает об ошибке сравнения переменных String и Integer
|
|||
|---|---|---|---|
|
#18+
А откуда компилятору знать какой диапазон значений может принять переменная? Может сравнение прокатит: 111 = "222"; а может и нет: 111 = "ааа". ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 12.12.2006, 13:04 |
|
||
|
Компилятор не предупреждает об ошибке сравнения переменных String и Integer
|
|||
|---|---|---|---|
|
#18+
Melkiades ошибается, Delphi - это именно язык, по крайней мере, производитель несколько лет об этом говорит. klen_, Вообще разговор бессмысленный. У каждого языка свои правила преобразования типов, чем сложнее язык, тем сложнее правила. У VB они простые. ПишИте на Аде, там проверки типов жестокие. :) ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 12.12.2006, 14:11 |
|
||
|
Компилятор не предупреждает об ошибке сравнения переменных String и Integer
|
|||
|---|---|---|---|
|
#18+
БенедиктMelkiades ошибается, Delphi - это именно язык, по крайней мере, производитель несколько лет об этом говорит. Прошу прощения, мы оба оказались правы. Просто я перестал следить за Borland. Delphi — язык программирования, ранее известный как Object Pascal, разработанный фирмой Borland и изначально реализованный в её пакете Borland Delphi, от которого и получил в 2003 году своё нынешнее название. По сути является наследником языка Pascal с объектно-ориентированными расширениями. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 12.12.2006, 16:00 |
|
||
|
Компилятор не предупреждает об ошибке сравнения переменных String и Integer
|
|||
|---|---|---|---|
|
#18+
Antonariy: "...Тогда уж объявить как Integer , а не просто объявить. ;) ..." Так само собой. Здесь же форум по VB, а не домохозяек. Настенька: "...мне вот этот option explicit вообще раздражает. надо все переменные объявлять. без него всё хорошо работает... " Вы много потеряли в моих глазах, Настенька. Вы вот еще без тормозов машину поводите. С ними так все тормозится... :0) VladConn ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 12.12.2006, 16:13 |
|
||
|
Компилятор не предупреждает об ошибке сравнения переменных String и Integer
|
|||
|---|---|---|---|
|
#18+
"... А откуда компилятору знать какой диапазон значений может принять переменная? Может сравнение прокатит: 111 = "222"; а может и нет: 111 = "ааа "." Компилятор конечно такого знать не может. Но вот сама среда, где пишется код, в принципе должна бы не допускать смешения типов. Здесь klen_ прав. И Microsoft в курсе этого пробела. В VB.NET добавлена Option Strict On, что и заполняет досадный пробел. Вот что там происходит как только впечатывается код: Option Strict On disallows implicit conversions from 'String' to 'Double'. Но это уже не для Настеньки ;0) ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 12.12.2006, 16:33 |
|
||
|
|

start [/forum/topic.php?fid=60&msg=34191656&tid=2164818]: |
0ms |
get settings: |
5ms |
get forum list: |
8ms |
check forum access: |
2ms |
check topic access: |
2ms |
track hit: |
190ms |
get topic data: |
6ms |
get forum data: |
2ms |
get page messages: |
36ms |
get tp. blocked users: |
1ms |
| others: | 217ms |
| total: | 469ms |

| 0 / 0 |
