Что нового

Можно ли все переменные в функции сделать global?

r35p3ct

Продвинутый
Сообщения
226
Репутация
60
Можно ли все переменные в функции сделать global не перечисляя их все?

Код:
Func asd()
$1=''
$2=''
...
$99=''
endFunc
 

Guezt

Продвинутый
Сообщения
335
Репутация
81
объяви массивом, а вообще что функция делать то должна? не могу понять, как обращаться хочешь к этим переменным... что-то типа вот так:

Код:
#include<array.au3>
HotKeySet("{ESC}", "_quit")
Global $Array[100]

for $i = 0  To 99 Step 1
$Array[$i]=($i+$i)*$i
Next
While 1
	$i = InputBox("", "введите число от 1 до 100")
	if $i >= 1 And $i <=100 Then
	$sMsg = asd($i+1)
	MsgBox(0,"","("&$i&"+"&$i&")*"&$i&"= "&$sMsg )
	Else
	EndIf
	Sleep(100)
WEnd

Func asd($i)
    $i = $Array[$i]
	Return $i
EndFunc

Func _quit()
	Exit
EndFunc


если нет, то объясни что делать должна функция - подумаем :smile:
 
Автор
R

r35p3ct

Продвинутый
Сообщения
226
Репутация
60
Вот к примеру код, чтение настроие из ini, просто думал может есть что то проще чем писать каждый раз объявление глобал...

Код:
Func Settings();Читаем настройки
;==========================================
Global $x1=StringRegExpReplace(IniRead("temp.ini", "fish", "x1",''),'&',@CRLF)
Global $x2=StringRegExpReplace(IniRead("temp.ini", "fish", "x2",''),'&',@CRLF)
Global $x3=StringRegExpReplace(IniRead("temp.ini", "fish", "x3",''),'&',@CRLF)
Global $x4=StringRegExpReplace(IniRead("temp.ini", "fish", "x4",''),'&',@CRLF)
Global $x5=StringRegExpReplace(IniRead("temp.ini", "fish", "x5",''),'&',@CRLF)
Global $x6=StringRegExpReplace(IniRead("temp.ini", "fish", "x6",''),'&',@CRLF)

EndFunc
 

snoitaleR

AutoIT Гуру
Сообщения
854
Репутация
223
А что, если объявить переменные вне функции в теле самого скрипта, то эти переменные будут доступны во всех функциях скрипта?
 
Автор
R

r35p3ct

Продвинутый
Сообщения
226
Репутация
60
snoitaleR сказал(а):
А что, если объявить переменные вне функции в теле самого скрипта, то эти переменные будут доступны во всех функциях скрипта?
да
 

Guezt

Продвинутый
Сообщения
335
Репутация
81
Код:
Func Settings($i);Читаем настройки количество строк в секции fish например
;==========================================
Global $Array[$i]
for $i = 0 to $i-1 step 1
$Array[$i]=StringRegExpReplace(IniRead("temp.ini", "fish", "x"&$Array[$i+1],''),'&',@CRLF)
next 
EndFunc



r35p3ct попробуй тут покурить тему:http://autoit-script.ru/index.php/topic,554.msg3861.html#msg3861
что-то у меня сегодня мозг вообще в отрубе :(

snoitaleR вообще можно, но как говорят - нежелательно :smile:
 

CreatoR

Must AutoIt!
Команда форума
Администратор
Сообщения
8 175
Репутация
2 331
Guezt [?]
вообще можно, но как говорят - нежелательно
Вообще-то как раз наоборот, глобальные переменные должны объявляться глобально, на то они и глобальные, чтоы везде их использовать ;)
 
Автор
R

r35p3ct

Продвинутый
Сообщения
226
Репутация
60
Спасибо за помощь, вобщем самое простое объявлять каждую перенную и не замарачиваться)
 

Guezt

Продвинутый
Сообщения
335
Репутация
81
CreatoR сказал(а):
Guezt [?]
вообще можно, но как говорят - нежелательно
Вообще-то как раз наоборот, глобальные переменные должны объявляться глобально, на то они и глобальные, чтоы везде их использовать ;)
я имел ввиду что желательней эти переменные объявить в начале скрипта, а не в "теле" самой функции... и я же не сказал что нет :smile:
 

CreatoR

Must AutoIt!
Команда форума
Администратор
Сообщения
8 175
Репутация
2 331
Guezt [?]
я имел ввиду что желательней эти переменные объявить в начале скрипта, а не в "теле" самой функции... и я же не сказал что нет
Но ты ответил snoitaleR'у, и ответил что можно но не желательно объявлять переменные в теле скрипта, о чём он и утверждает.

P.S
Полезно всё же цитировать пост (часть текста в нём) на который собираешься отвечать ;)
 

Guezt

Продвинутый
Сообщения
335
Репутация
81
Полезно всё же цитировать пост (часть текста в нём) на который собираешься отвечать
- это вот сделал вручную тегами quote - /quote - научи пользоваться Этой "Цитировать++" вот без шуток - не умею :( хоть минус ставь хоть смейся умею только все сообщение, либо руками - что долго и лениво... :'(
 

kaster

Мой Аватар, он лучший самый
Команда форума
Глобальный модератор
Сообщения
4 020
Репутация
622
Профиль - Внешний вид форума - Укажите тип формы быстрого ответа (выбрать в комбо "Не WYSIWIG (с кнопками bbc и смайлами)")
Там же - Форма быстрого ответа - выбрать в комбо "включить, по умолчанию развернута"
 
Верх