2010-06-08 71 views
0

您好,有關運算符||的簡單問題

我嘗試這樣做,在FlashBuilder(FlexProject)

protected function btn_detail_view_clickHandler(event:MouseEvent):void 
     { 
      CurrentState="Statistiques" || "PartMarche"; 
     } 

但它不工作,我想這是不正確的語法,但什麼是正確的語法?由於

PS:我想,當狀態等於「statistiques」或「partMarche」當我點擊該按鈕,當前狀態更改爲詳細視圖;)

+0

你想做什麼? – BoltClock 2010-06-08 22:00:46

+0

我有一個按鈕,我想要的狀態等於「statistiques」或「partMarche」,我點擊它,當前狀態更改爲詳細視圖;) – 2010-06-08 22:04:54

回答

0

好吧,其實我需要刪除.Statistiques該代碼在所有的國家工作

click.Statistiques="btn_detail_view_clickHandler(event)" 

對不起,我只是自己跑得太快,而不是完成教程。

你的答案會阻止我問下一個問題!謝謝;)

1

在ECMAScript中的語言,||是一個短路運算符,如果計算結果爲「truthy」值,則返回左側表達式結果,否則返回右側表達式結果。非空字符串總是評估爲真值,所以左邊的表達式總是會在這裏返回。等效的長手碼到您的例子是:

if ("Statistiques") 
    CurrentState = "Statistiques"; 
else 
    CurrentState = "PartMarche"; 

這種類型的短路操作者的用於設定默認爲變量在某些情況下:

CurrentState = PreviousState || "Some string"; 

在那個例子中,如果PreviousState爲空或假或空字符串,CurrentState將被設置爲「某些字符串」。如果PreviousState是一個類似「其他字符串」的字符串,則CurrentState將被設置爲「某些其他字符串」。

+0

謝謝你是一個完整的,複雜的答案。 如果我理解了你的最大動機,||不是我正在尋找的操作員。但是,什麼運營商使用呢? (我更新了我的帖子,告訴你我想測試的內容) 謝謝 – 2010-06-08 22:12:58

+0

@Tristan:我不確定自己完全理解,但我認爲你正在尋找一個帶'||'的普通if語句,和等號運算符:'if(CurrentState ==「Statistiques」|| CurrentState ==「PartMarche」){CurrentState =「DetailView」; }'。請記住,一個'='是賦值運算符,double == ==和triple == =='分別是equal和type-strict boolean運算符。 – 2010-06-08 22:16:41

+0

就是這樣!非常感謝您;) – 2010-06-08 22:18:50

1

感謝您澄清你想要做什麼。對於檢查什麼CurrentState是,你需要有一個if條件來測試它:

if (CurrentState == "Statistiques" || CurrentState == "PartMarche") 
    { 
     // Of course, use the actual name of your detail view here 
     CurrentState = "DetailView"; 
    } 
+0

非常感謝您;) – 2010-06-08 22:18:19