Вопрос о переменных | #HelpMe

FlewMo

Участник
Автор темы
12
1
Вообщем, я использую командный процессор, и вместе с ним и SAMP UDF.
Ошибка собственно не в этом, а в том, что в самой команде перестают работать переменные вне её (в том же скрипте, но не в её блоке).
Я пытался сделать такой код-проверку:

Код:
test1() {
    global hello = текст
}

test2() {
    addChatMessage("Вот переменная: " hello)
}

Я задавал переменной значение командой /test1, а потом должен был её проверить командой /test2.
Как вы понимаете, у меня ничего не вышло. Сама команда работает, но пишет просто: "Вот переменная:", больше ничего. Я пробовал и с global hello, и просто hello.
Ничего не помогает. Прошу помощи.
 
Решение
Глобальную переменную сначала необходимо объявить вне функций, хотя согласно документации по AHK, можно и по другому, но я бегло проверил и у меня не сработало.

AutoHotKey:
; Наша глобальная переменная.
global hello := "string" ; Присваивать не обязательно.

; Устанавливает нашей переменной значение.
SetDefaultHelloValue() {
    hello := "new string"
}

; Показывает значение нашей переменной.
ShowHelloValue() {
    MsgBox, Hello value: %hello%
}

ShowHelloValue()
SetDefaultHelloValue()
ShowHelloValue()

#Rin

Известный
Всефорумный модератор
1,214
1,036
Глобальную переменную сначала необходимо объявить вне функций, хотя согласно документации по AHK, можно и по другому, но я бегло проверил и у меня не сработало.

AutoHotKey:
; Наша глобальная переменная.
global hello := "string" ; Присваивать не обязательно.

; Устанавливает нашей переменной значение.
SetDefaultHelloValue() {
    hello := "new string"
}

; Показывает значение нашей переменной.
ShowHelloValue() {
    MsgBox, Hello value: %hello%
}

ShowHelloValue()
SetDefaultHelloValue()
ShowHelloValue()
 
  • Нравится
Реакции: FlewMo