Страница: 1 | 2 |
Вопрос: мысль. параметры функции
Добавлено: 15.01.11 18:27
Автор вопроса: Winand | Web-сайт:
на 13й год существования языка я узнал, что параметры функции можно указывать в произвольном порядке:) Не знаю для чего это придумано, но забавно
Call func(two:=2, three:=3, one:=1)
End Sub
Private Sub func(ByVal one As Long, ByVal two As Long, ByVal three As Long)
Debug.Print one, two, three
End Sub
Ответы
Всего ответов: 23
Номер ответа: 1
Автор ответа:
AWP
ICQ: 345685652
Вопросов: 96
Ответов: 1212
Web-сайт:
Профиль | | #1
Добавлено: 15.01.11 19:10
интересно)))...
Номер ответа: 2
Автор ответа:
Artyom
Разработчик
Вопросов: 130
Ответов: 6602
Профиль | | #2
Добавлено: 15.01.11 21:13
Посмотри в Office DOM некоторые функции. Бывает и 20+ параметров, все из которых опциональные. А таким способом получится более-менее удобно задать только нужные.
Номер ответа: 3
Автор ответа:
Winand
Вопросов: 87
Ответов: 2795
Web-сайт:
Профиль | | #3
Добавлено: 16.01.11 00:26
Да, в это есть смысл) Хотя когда параметров много часто задают их в структуре, ссылка на которую передается в функцию
Номер ответа: 4
Автор ответа:
AgentFire
ICQ: 192496851
Вопросов: 75
Ответов: 3178
Профиль | | #4
Добавлено: 16.01.11 23:27
так делают уже менее криворукие люди..
Номер ответа: 5
Автор ответа:
udn79
Вопросов: 2
Ответов: 95
Профиль | | #5
Добавлено: 03.02.11 08:37
Dim b() As Byte
Const s = "нужно книжки хоть иногда заглядывать, не говоря уже о руководстве"
b = s
Debug.Print "Чайник, "; b
Номер ответа: 6
Автор ответа:
AgentFire
ICQ: 192496851
Вопросов: 75
Ответов: 3178
Профиль | | #6
Добавлено: 03.02.11 09:40
ты к Byte() присваиваешь String, чайник?
Номер ответа: 7
Автор ответа:
LamerOnLine
ICQ: 334781088
Вопросов: 108
Ответов: 2822
Профиль | | #7
Добавлено: 03.02.11 14:40
А в чем проблема?
Номер ответа: 8
Автор ответа:
AgentFire
ICQ: 192496851
Вопросов: 75
Ответов: 3178
Профиль | | #8
Добавлено: 03.02.11 17:03
Полагаю, что в несоответствии типов переменных
Номер ответа: 9
Автор ответа:
udn79
Вопросов: 2
Ответов: 95
Профиль | | #9
Добавлено: 03.02.11 19:45
Прочти тему и проверь код
Вот и я говорю в руководство не смотрят, не говаря уже о полном руководстве.
В книгах есть элементы которые не встретишь даже в инете, покрай ней мере на руском языке.
В байтовому массиву и строкам можно применять одни и тебе функции
Dim a() As Byte:a = CStr & "Íó òû ÷àéíèê"
Номер ответа: 10
Автор ответа:
udn79
Вопросов: 2
Ответов: 95
Профиль | | #10
Добавлено: 03.02.11 19:56
Номер ответа: 11
Автор ответа:
udn79
Вопросов: 2
Ответов: 95
Профиль | | #11
Добавлено: 03.02.11 20:03
Твой код можно записать и так
Номер ответа: 12
Автор ответа:
AgentFire
ICQ: 192496851
Вопросов: 75
Ответов: 3178
Профиль | | #12
Добавлено: 03.02.11 22:42
В байтовому массиву и строкам можно применять одни и тебе функции
О Ужас! Это ужасно! БЕсмысленная, беспощадная несуразица!!!
Номер ответа: 13
Автор ответа:
Winand
Вопросов: 87
Ответов: 2795
Web-сайт:
Профиль | | #13
Добавлено: 03.02.11 23:23
udn79 ага. этот код можно записать тысячей способов)
AgentFire ну а что. Там же неявное преобразование типов повсюду
msdn "Совет 361. Избегайте неявного преобразования типов данных. <...> Подобная возможность является большим недостатком VB, а ее использование разработчиками говорит в первую очередь об их небольшом опыте…"
С другой стороны строки и массивы байтов сильно завязаны. Например InStrB позволяет искать последовательности байтов
Номер ответа: 14
Автор ответа:
udn79
Вопросов: 2
Ответов: 95
Профиль | | #14
Добавлено: 04.02.11 00:27
AgentFire
Опровергни
что нельзя сделать со строкой, что можно с байтовым массивом либо наоборот?
Номер ответа: 15
Автор ответа:
udn79
Вопросов: 2
Ответов: 95
Профиль | | #15
Добавлено: 04.02.11 00:49
Избегать - не значит игнорировать эту возможность
Использование участков отладки не отражается на полноценном коде.
Также как и венгерское сокращение записи.
Dim a% ,b# ,c! ,d& ,e$
Не явное преобразование, дизеоринтирует пользователя, поэтому его требуется избегать, так написано в руководстве, я читал об этом. Только речь шла о возможностях.
И если алгоритм будет работать в цикле бытсрей с Dim b() As Byte, чем со строкой, то не просто глупо, а даже тупо не использовать неявное преобразование. Можешь явно преобразовать.
Я знаю, что такое некультурный тон в програмирование.
Не явное преобразование дает понять, что вошто можно преобразовать хотябы. Да и без знания этого ты и не заметишь, что у тебя неявно преобразовалось и почему у тебя алгоритм, выдает не те результаты.