2013-09-16 2 views
0
if someCondition() { 
    something := getSomething() 
} else { 
    something := getSomethingElse() 
} 

print(something) 

в этом примере кода, компилятор дает ошибку undefined: something. Так как это оператор if else, то в среде выполнения будет определена переменная something, но компилятор не обнаружит этого.if-else undefined переменная ошибка компиляции

Как избежать этой ошибки компиляции, также будет ли это исправлено в следующих версиях?

ответ

1

В вашем фрагменте кода вы определяете два something переменные области видимости каждого блока, если заявление.

Вместо этого, вы хотите одной переменной за пределами области видимости, если заявление:

var something sometype 
if someCondition() { 
    something = getSomething() 
} else { 
    something = getSomethingElse() 
} 

print(something) 
1

Две переменные something представляют собой две разные переменные с различными областями. Они не существуют вне области if/else, поэтому вы получаете неопределенную ошибку.

Вам нужно определить переменную вне если заявление с чем-то вроде этого:

var something string 

if someCondition() { 
    something = getSomething() 
} else { 
    something = getSomethingElse() 
} 

print(something) 
Смежные вопросы