商城首页欢迎来到中国正版软件门户

您的位置: 首页 > 文章列表 > 编程开发 > 收集的WML Script标准函数库第1/3页

收集的WML Script标准函数库第1/3页

  发布于2026-07-22 阅读(0)

扫一扫,手机访问

这节的内容,咱们来聊聊 WML Script 的标准函数库。这些库函数是 WML Script 语言能力的重要扩展,理解它们能让你在处理移动设备上的脚本时更加得心应手。

6.1 WML Script 规则

标准函数库提供了一套扩展 WML Script 语言的机制,所有函数库都必须遵循 WML Script 的基本规则。先理清几个关键点。

支持的数据格式

在函数定义中,参数和返回值会用到以下格式:

  • Boolean – 布尔值
  • Integer – 整数
  • Float – 浮点数
  • String – 字符串
  • Invalid – 无效值

另外,如果某个参数既接受整数也接受浮点数,可以用 number 来标记;如果接受任意支持的类型,则用 any

数据格式转换与错误处理

函数库在处理参数时,遵循 WML Script 语言本身的数据类型转换规则。如果传入的参数是 invalid,那么返回值通常也是 invalid。如果参数无法转换为函数所需的类型,也会返回 invalid。至于函数执行过程中间出现的其他错误,则返回一个由具体函数定义的错误码。

6.2 Lang 函数库

名称:Lang
说明:这个函数库里的程序与 WML Script 语言的核心功能关系非常紧密,可以说是最基础、最常用的一套工具。

abs
程序:abs(value)
说明:返回给定数值的绝对值。如果传入的是整数,返回整数;如果传入的是浮点数,返回浮点数。
参数:value – 数字
返回值:数字或 invalid
例外状况:
范例:
var a = -3;
var b = Lang.abs(a); // b = 3

min
程序:min(value1, value2)
说明:返回两个数值中较小的那个。返回值的类型取决于比较后选中的那个值的原始类型,整个比较过程遵循 WML Script 的整数与浮点数转换规则。
参数:value1 – 数字;value2 – 数字
返回值:数字或 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(整数)
var e = Lang.min(45, 76.3); // e = 45(浮点数,注意这里与上例不同,实际取决于第二个参数是浮点数,但结果比较时取较小值,45作为整数,但返回时按规则可能转为浮点数——具体看引擎实现)

max
程序:max(value1, value2)
说明:返回两个数值中较大的那个。类型转换规则与 min 相同。
参数:value1 – 数字;value2 – 数字
返回值:数字或 invalid
例外状况:
范例:
var a = -3;
var b = Lang.abs(a); // b = 3
var c = Lang.min(a, b);
var d = Lang.min(45, 76.3); // 这里应为 max 的范例,但原文如此,实际使用时应调用 Lang.max

parseInt
程序:parseInt(value)
说明:从字符串 value 中解析出一个整数值。解析规则遵循 WML Script 数值字符串文法,额外要求是:如果第一个字符不是 +- 或十进制数字,则立即停止解析。解析完成后将结果转换为整数。
参数:value – 字符串
返回值:整数或 invalid
例外状况:解析失败返回 invalid
范例:
var i = Lang.parseInt("1234"); // i = 1234
var j = Lang.parseInt("100 m/s"); // j = 100

parseFloat
程序:parseFloat(value)
说明:从字符串 value 中解析出一个浮点数值。规则与 parseInt 类似,但需要能构成合法的浮点数表达式。如果第一个字符无法解析为浮点数的一部分,则解析结束。
参数:value – 字符串
返回值:浮点数或 invalid
例外状况:解析错误返回 invalid
范例:
var a = Lang.parseFloat("123.7 Hz"); // a = 123.7
var b = Lang.parseFloat("7.34e2 Hz"); // b = 734
var c = Lang.parseFloat("70.0e-2 F"); // c = 0.7
var d = Lang.parseFloat("-1.c"); // d = -1.0?注意:原文此处为 -1.c,但实际解析可能得到 -1.0?需谨慎,范例中写的是 d = 0.1,疑为笔误,应为 -1.0
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)
说明:判断给定的值 value 能否通过 parseInt(value) 转换为整数。能则返回 true,否则返回 false
参数:value – 任意值
返回值:布尔值或 invalid
例外状况:
范例:
var a = Lang.isInt("-123"); // true
var b = Lang.isInt("123.33"); // true(注意:虽然带小数点,但 parseInt 会停止在点号前,所以能解析出 123,返回 true)
var c = Lang.isInt("string"); // false
var d = Lang.isInt("#123"); // false
var e = Lang.isInt("invalid"); // invalid(传入无效值?注意:原文中此处写的是 "invalid" 字符串,但实际传入字符串 "invalid" 会被解析为 false,因为无法解析出整数;但这里写的是 "invalid" 作为值,可能是笔误)

isFloat
程序:isFloat(value)
说明:判断给定的值 value 能否通过 parseFloat(value) 转换为浮点数。能则返回 true,否则返回 false
参数:value – 任意值
返回值:布尔值或 invalid
例外状况:
范例:
var a = Lang.isFloat("-123"); // true(-123 可转为浮点数 -123.0)
var b = Lang.isFloat("123.33"); // true
var c = Lang.isFloat("string"); // false
var d = Lang.isFloat("#123"); // false
var e = Lang.isFloat("invalid"); // invalid(与 isInt 类似,此处疑为笔误)

maxInt
程序:maxInt()
说明:返回 WML Script 所能表示的最大整数值。
参数:
返回值:整数 2147483647
例外状况:
范例:
var a = Lang.maxInt(); // a = 2147483647

minInt
程序:minInt()
说明:返回 WML Script 所能表示的最小整数值。
参数:
返回值:整数 -2147483647(注意:不是 -2147483648,这是 WML Script 的约定)
例外状况:
范例:
var a = Lang.minInt(); // a = -2147483647

float
程序:float()
说明:检测当前环境是否支持浮点数。支持则返回 true,否则返回 false
参数:
返回值:布尔值
例外状况:
范例:
var floatsSupported = Lang.float();

exit
程序:exit(value)
说明:立即终止当前 WML Script 字节码的解释执行,并将控制权返回给调用 WML Script 解释器的程序,同时返回指定的值 value。这个函数通常用于正常结束执行。
参数:value – 任意值
返回值:无(函数执行后解释器停止)
例外状况:
范例:
Lang.exit("Value: " + myVal); // 返回一个字符串
Lang.exit(invalid); // 返回 invalid

abort
程序:abort(errorDescription)
说明:异常终止 WML Script 字节码的解释执行,并返回一个错误描述字符串 errorDescription。适用于检测到严重错误时立即中断执行。如果 errorDescription 本身是 invalid,则实际返回字符串 "invalid"
参数:errorDescription – 字符串
返回值:无(解释器停止)
例外状况:
范例:
Lang.abort("Error: " + errVal); // 返回错误值字符串

random
程序:random(value)
说明:返回一个大于等于 0、小于 value 的正整数。随机数分布近似均匀。
参数:value – 整数
返回值:整数或 invalid
例外状况:如果 value 等于 0,则返回 0;如果 value 小于 0,则返回 invalid
范例:
var a = 10;
var b = Lang.random(5.1) * a; // b 处于 0 到 50 之间(注意:传入 5.1 会被转换为整数 5,所以随机范围是 0~4,乘以 a 得 0~40?原文此处有歧义,但保持原样)
var c = Lang.random("string"); // c = invalid

seed
程序:seed(value)
说明:初始化随机数生成器的种子,并返回一个空字符串。如果 value 是 0 或正整数,则使用该值作为种子;否则使用一个随机初始化的值。如果 value 是浮点数,则先通过 Float.int() 转换为整数再使用。
参数:value – 整数
返回值:字符串或 invalid
例外状况:
范例:
var a = Lang.seed(123); // a = ""
var b = Lang.random(20); // b 为 0 到 19 之间的随机数
var c = Lang.seed("seed"); // c = invalid(字符串无法转换为整数,种子不变)

characterSet
程序:characterSet()
说明:返回当前 WML Script 解释器所支持的字符集对应的 MIBEnum 值(由 IANA 定义)。这个值是一个整数,用于标识字符集。
参数:
返回值:整数
例外状况:
范例:
var charset = Lang.characterSet(); // 例如 Latin-1 字符集返回 4

本文转载于:https://www.jb51.net/article/8385.htm 如有侵犯,请联系zhengruancom@outlook.com删除。
免责声明:正软商城发布此文仅为传递信息,不代表正软商城认同其观点或证实其描述。

热门关注