Вернуть более одного значения из функции
3490 просмотра
2 ответа
ОБНОВЛЕНИЕ: это функция WIP.
<%
Function ReturnTwoValues(Data)
If Data= Now() Then
Var1= "ABC"
Var2= "000"
Else
Var1= "CDE"
Var2= "111"
End If
ReturnTwoValues = Array(Var1, Var2)
End Function
a = ReturnTwoValues(Data)
Value1= a(0)
Value2= a(1)
%>
Теперь я сомневаюсь: как я могу вызвать функцию? Если я это сделаю Response.Write Value1
и Response.Write Value2
смогу получить значение, но сначала мне нужно будет передать параметр. Что-то вроде ReturnTwoValues(Now())
, но если я сделаю это, как я смогу получить первое и второе значение?
ОРИГИНАЛЬНЫЙ ВОПРОС:
У меня есть эта псевдо-функция и я хотел бы иметь возможность вернуть значение из Variable1
и Variable2
:
<%
Today= Now()
Function TellsMeTheTime(Date_Field)
If IsNull(Date_Field) = False Or Date_Field <> "" Then
DaysAmount= DateDiff("d", Date_Field, Today)
Select Case True
Case DaysAmount = 0
Variable1 = "warning"
Variable2 = "text1"
Case DaysAmount > 1
Variable1 = "danger"
Variable2 = "text2 " & DaysAmount & " text3"
Case DaysAmount = -1
Variable1 = "warning"
Variable2 = "text4"
Case DaysAmount = -2, -3, -4, -5, -6, -7
Variable1 = "warning"
Variable2 = "text5 " & Right(DaysAmount, Len(DaysAmount) - 1) & " text6"
Case DaysAmount <= -8
Variable1 = "success"
Variable2 = "text7 " & Right(DaysAmount, Len(DaysAmount) - 1) & " text8"
Case DaysAmount = ""
Variable1 = "danger"
Variable2 = "text9 " & DaysAmount & " text10"
Case Else
Variable1 = "warning"
Variable2 = "text11 " & Right(DaysAmount, Len(DaysAmount) - 1) & " text12"
End Select
Else
Variable1 = "danger"
Variable2 = "text12"
End If
End Function
%>
Как я могу это сделать?
Автор: Khrys Источник Размещён: 12.11.2019 09:39Ответы (2)
4 плюса
Передайте обратно массив:
Function ReturnTwoValues(Date_Field)
' Do some date testing using Date_Field and then return the proper values...
ReturnTwoValues = Array("hello", "world")
End Function
a = ReturnTwoValues(#7/7/2014#)
WScript.Echo a(0) ' ==> "hello"
WScript.Echo a(1) ' ==> "world"
Или воспользуйтесь тем, что переменные передаются по ссылке в VBScript:
Sub ModifyTwoValues(Date_Field, returnOne, returnTwo)
' Do some date testing using Date_Field and then return the proper values...
returnOne = "hello"
returnTwo = "world"
End Sub
ModifyTwoValues #7/7/2014#, var1, var2
WScript.Echo var1 ' ==> "hello"
WScript.Echo var2 ' ==> "world"
Автор: Bond
Размещён: 07.07.2014 05:09
0 плюса
Простые обходные пути:
Использовать массив или
Используйте объект словаря.
Вот более ранний вопрос StackOverflow, который имеет полное изложение: QTP: Как я могу вернуть несколько значений из функции
Автор: Bret Размещён: 07.07.2014 04:36Вопросы из категории :
- function Как вы передаете функцию в качестве параметра в C?
- function Как работают закрытия JavaScript?
- function Есть ли в Python функция для разбиения слова на список?
- function Что предпочтительнее использовать в Python: лямбда-функции или вложенные функции ('def')?
- function Есть ли лучший способ сделать необязательные параметры функции в JavaScript?
- function В чем разница между «закрытием» и «лямбдой»?
- vbscript CScript / WScript Предотвратить блокировку ошибки
- vbscript VBScript - Использование обработки ошибок
- vbscript Строка кодирования Base64 в VBScript
- vbscript UTF-8 Server.UrlEncode проблема в ASP Classic
- vbscript Как завершить процесс с помощью VBScript
- vbscript Могу ли я подобрать переменные среды в сценарии WSH vbscript?
- asp-classic Проблема с кодировкой classic ASP
- asp-classic Хороший способ дезинфицировать вход в классическом аспе
- asp-classic Asp Classic Calling webservice с запросом SOAP
- asp-classic Вставить символ в строку по указанному индексу
- asp-classic Как отложить ответ в Classic ASP