這節(jié)會討論標準的WML Script函數(shù)庫。 6.1 WML Script規(guī)則 這些標準函數(shù)庫提供一個擴展WML Script語言的機制,這些特定的函數(shù)庫必須遵循WML Script的規(guī)則。 支持的數(shù)據(jù)格式 下面的WML Script格式使用于程序的定義之中,這樣能記錄程序參數(shù)與回轉(zhuǎn)值的格式。 Boolean Integer Float String Invalid 除此之外,如果整數(shù)與浮點數(shù)參數(shù)值格式都能接受的話,則能使用number來記錄參數(shù)格式,如果使用的格式是所支持的格式,則能用any來記錄。 數(shù)據(jù)格式轉(zhuǎn)換 函數(shù)庫程序發(fā)生錯誤的處理方式和WML Script語言一樣。 invalid程序參數(shù)會產(chǎn)生invalid的回傳值。 程序的參數(shù)無法轉(zhuǎn)成所需要使用參數(shù)格式,則會產(chǎn)生invalid的回傳值。 與程序相關(guān)的錯誤得出回傳一個適當(dāng)?shù)腻e誤碼,至于這個值就要看每個程序如何定義。 6.2 Lang函數(shù)庫 名稱:Lang 說明:這個函數(shù)庫所含的程序同WML Script語言的核心有很密切的關(guān)系。 abs 程序:abs(value) 說明:回傳給予數(shù)的絕對值。 如果給予的數(shù)是整數(shù),則回傳整數(shù)。 如果給予的數(shù)是浮點數(shù),則回傳浮點數(shù)。 參數(shù):value=數(shù)字。 回傳值:數(shù)字或invalid。 例外狀況:var a =-3; var b =Lang.abs(a);//b=3 min 范例:var a = -3 var b = Lang.abs(a); var c = Lang.min(a.b); var d = Lang.min(45、76.3);//d=45(ingteger) var e = Lang.min(45、76.3);//e=45(ingteger) max 程序:max(value1,value2) 說明:回傳值給予的兩個數(shù)之間的較大值,回傳的值于格式同所選數(shù)值的值與格式相同,其選取的方式如下: WML Script運算符數(shù)據(jù)格式的整數(shù)與浮點數(shù)轉(zhuǎn)換法則可用來確認數(shù)據(jù)格式,以便執(zhí)行比較的動作。 參數(shù):value1 =數(shù)字 value2 =數(shù)字 回傳值:數(shù)字或invalid 例外狀況:無 范例:var a =-3; var b =Lang.abs(a);//b=3 var c = Lang.min(a.b); var d = Lang.min(45、76.3);//d=45(ingteger) var e = Lang.min(45、76.3);//e=45(float) parseInt 程序:parseInt(value) 說明:回傳由字符串value所定義的整數(shù)值,合法的整數(shù)語法由WML Script數(shù)值字符串文法或是近值整數(shù)是字所界定,下列為額外的解析法則: 第一個字符不是由+、-或十進制數(shù)字當(dāng)開頭的話,解譯結(jié)束。 結(jié)果:解析過的字符串回轉(zhuǎn)換整數(shù)值。 范例:var i =Lang.parseInt("1234"); // i=1234 var j =Lang.parseInt("100 m/s"); // j=100 parseFloat 程序:parseFloat(value) 說明:回傳由字符串value所定義的浮點數(shù)值,合法的浮點數(shù)語法由WML Script數(shù)值字符串文法或是近值整數(shù)實字所界定,下列為額外的解析法則: 第一個字符無法解析成浮點數(shù)表達式,解析結(jié)束。 結(jié)束:解析過的字符串回轉(zhuǎn)換成浮點數(shù)。 參數(shù):value=字符串 回傳值:浮點數(shù)或invalid 例外狀況:解析錯誤則傳回invalid 范例:var a =Lang.parseFloat("123.7 Hz"); // a=123.7 var b =Lang.parseFloat("7.34e2 Hz"); // b=7.34e2 var c =Lang.parseFloat("70.0e-2 F"); // c=70.0e-2 var d =Lang.parseFloat("-1.c"); // d=0.1 var e =Lang.parseFloat("100"); // e=100.0 var f =Lang.parseFloat("Number:5.5"); // f=invalid var g =Lang.parseFloat("7.3e meters"); // g=invalid var h =Lang.parseFloat("7.3e- m/s"); // h=invalid isInt 程序:isInt(value) 說明:如果各預(yù)的值value能使用parseInt(value)轉(zhuǎn)成整數(shù)則回傳布爾值ture,否則傳回false。 參數(shù):value=任意值 回傳值:布爾值或invalid 例外狀況:無 范例:var a=Lang.inInt("-123"); //ture var a =Lang.minInt("123.33"); //ture var a =Lang.minInt("string"); //false var a =Lang.minInt("#123"); //false var a =Lang.minInt("invalid"); //invalid isFloat 程序:isFloat(value) 說明:如果各預(yù)的值value能使用parseInt(value)轉(zhuǎn)成整數(shù)則回傳布爾值ture,否則傳回false。 參數(shù):value=任意值 回傳值:布爾值或invalid 例外狀況:無 范例:var a=Lang.inInt("-123"); //ture var a =Lang.minInt("123.33"); //ture var a =Lang.minInt("string"); //false var a =Lang.minInt("#123"); //false var a =Lang.minInt("invalid"); //invalid maxInt 程序:maxInt() 說明:傳回最大的整數(shù)值。 參數(shù):無 回傳值:整數(shù)2147483647 例外狀況:無 范例:var a =Lang.minInt(); minInt 程序:minInt() 說明:傳回最小的整數(shù)值 參數(shù):無 回傳值:整數(shù)-2147483647 例外狀況:無 范例:var a =Lang.minInt(); float 程序:float() 說明:如果有支持浮點數(shù)的話傳回ture,沒有的話傳回false。 參數(shù):無 回傳值:布爾值 例外狀況:無 范例:var floatsSupported = Lang.float(); exit 程序:exit(value) 說明:結(jié)束WML Script位碼的解譯然后回到調(diào)用WML Script解譯器者的控制,并回傳指定值value,你可以使用這個程序來執(zhí)行由一般程序的結(jié)束,而且WML Script位碼的執(zhí)行必須停止。 參數(shù):valre=任意值 回傳值:無,這個程序結(jié)束解譯 例外狀況:無 范例:Lang.exit("Value:" + myVal);//Returns a string Lang,exit(invalid);// Returns invalid abort 程序:abort(errorDescription) 說明:中止WML Script位碼的解譯然后回到調(diào)用WML Script解譯器者的控制,并回傳 errorDescription,你能使用這個程序執(zhí)行不正常的中止,調(diào)用程序者檢測到有嚴重錯誤,WML Script的執(zhí)行并須中斷。 如果errorDescription的格式為invalid,字符串invalid用代替errorDescription的使用。 參數(shù):errorDescription =字符串 回傳值:無,這個程序結(jié)束解譯 例外狀況:無 范例:Lang.abort("Error:" + errVal); // Error value string radndom 程序:random(value) 說明:回傳一個正數(shù)的整數(shù)值,也就是說要大于或等于零,但必須要小于給定值value,回傳值是由近是正常分布所隨機選取的值。 參數(shù):value=整數(shù) 回傳值:整數(shù)或invalid 例外狀況:如果value等于0,則程序回傳0 如果value小于0,則程序回傳invalid 范例:var a =10; var b =Lang.random(5.1)*a;//b=0..50 var c = Lang.random("string"); // c=invalid reed 程序:seed(alue) 說明:初始化需隨機數(shù)字順序并回傳一個空字符串 如果value為0或正整數(shù),給予的value則用來初始化,反之則使用隨機初始化的值。 如果value為浮點數(shù),則會先使用Float.int()來計算確切的整數(shù)值。 參數(shù):value=整數(shù) 回傳值:字符串或invalid] 例外狀況:無 范例:var a =Lang.reed(123);// a="" var b =Lang.random(20); // b=0..20 var c = Lang.seed("seed"); // c=invalid (random seed //left unchanged) characterSet 程序:characterSet() 說明:回傳WML Script解譯器所支持的字集,回傳只是個整數(shù)用來記錄由IANA所設(shè)定的MIB Enum值,這個只能表示所有的字集。 參數(shù):無 回傳值:整數(shù) 例外狀況:無 范例:Var charset = Lang.characterSet(); //charset = 4 for latinl