[英]How to use Non-assignment expressions in Flex as3 using Flex SDK?
我正在查看ActionScript 3規范 ,因為我注意到索引下的非賦值表達式 - > 14表達式> 14.18非賦值表達式。 是否可以通過三元運算符動態地為變量分配數據類型?:如下所述,如docx中所述。
可以在可以使用TypeExpression的地方使用NonAssignmentExpression。
var x : hintString ? String : Number
如果我在使用flex SDK構建它時可以在as3中使用語法錯誤
> src\App.mxml(29): Error: Syntax error: expecting semicolon before String.
var x1: h1 ? String : Number;
對於以下代碼。
<s:Application xmlns:fx="http://ns.adobe.com/mxml/2009"
xmlns:mx="library://ns.adobe.com/flex/mx"
xmlns:s="library://ns.adobe.com/flex/spark"
creationComplete="onComplete()">
<fx:Script>
<![CDATA[
import mx.controls.Alert;
private function onComplete():void
{
//test
var h1:String = 'hai';
var x1: h1 ? String : Number;
Alert.show("Type of x1 :"+typeof(x1));
}
]]>
</fx:Script>
<fx:Declarations>
</fx:Declarations>
</s:Application>
如果有可能在as3中,為什么不在Flex? 我已經檢查了有關條件運算符的 Adobe文檔,但沒有提到像上面那樣的原因?
有趣的問題。 您在那里編寫的是ActionScript 3.0,因此無論您是在Flex上下文中編寫純ActionScript 3.0還是ActionScript 3.0,都無法構建該構造。 自從它出生以來我一直使用這種語言,而且我以前從未見過這種結構。
我最好的猜測是它必須是AS 3.0規范文檔中的錯誤。 在擬議的ECMAScript第4版 - 語言概述文檔中沒有任何內容,這個Mozilla Tamarin錯誤報告頁面說它(引用)“未實現也不可實現”。
作為旁注,我正在努力想到這個結構的應用程序。
是的,非常有趣的問題,謝謝你的指點。 我試過了:
var h1:String = null; //(if try var h1:String = 'hai' the output will be [class String]
var x1 = h1 ? String : Number;
// probably the same result as x1:*
trace(x1); // [class Number]
我剛剛檢查了這個測試的abc,當我們使用這種方法或*時,它使用coerce_a (向驗證者指示堆棧上的值是任何類型(*)。沒有任何值。)
我同意@ net.uk.sweet,關於努力想到這個結構的應用程序..
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.