原生支持

助译嵌入指令是轻语言特别支持的一项兼容特性,该特性允许在轻语言程序中直接使用目标平台的原生开发端语言代码;以安卓、视窗举例,使用轻语言开发安卓、视窗程序;可以直接在程序代码中使用 Java 源代码。

语法:

@{ 任意原生代码 }

只需要在代码中任意位置使用 @ { } 包裹原生代码;就能在程序中无缝嵌入并使用原生代码。

视窗示例:

事件 按钮1.被单击(来源对象 为 对象,事件对象 为 鼠标事件)
    ' 使用原生代码对指定数组进行排序
    变量 array = { 12,25,34,66,54 }
    @{
        for(int i = 0; i < array.length - 1; i++)
        {
            for(int j = 0; j < array.length - 1 - i; j++)
            {
                if(array[j] > array[j + 1])
                {
                    int temp = array[j];
                    array[j] = array[j + 1];
                    array[j + 1] = temp;
                }
            }
        }
    }
    调试输出(到文本(array))
结束 事件

上方代码运行后将输出:

[12, 25, 34, 54, 66]

安卓示例:

' 引用安卓原生 Toast 类
引用 android.widget.Toast

事件 按钮1.被单击(来源对象 为 视图)
    ' 调用安卓原生类显示 Toast 提示
    ' 由于不涉及原生代码特定语法格式、 Toast 支持静态调用,因此无需使用 @{ } 包裹
    Toast.makeText(取应用上下文(), "按钮被点击了!", Toast.LENGTH_SHORT).show()
结束 事件

更多有关于在安卓程序中使用原生代码及上下文的内容请参考 使用 Jar 包及原生代码

微信小程序示例:

事件 按钮1.被单击(事件源)
    ' 调用微信原生JS代码、只需要使用 @{ 包裹即可 }
    ' 需注意:原生代码中不能含有注释
    ' 官方文档:https://developers.weixin.qq.com/miniprogram/dev/api/
    @{
        wx.showToast({
          title: "成功",
          icon: "success",
          duration: 2000
        })
    }
结束 事件

单片机示例:

' 可以在程序中直接调用 Arduino 代码
函数 调用Arduino代码()
    digitalWrite(13, HIGH)
    delay(1000)
    digitalWrite(13, LOW)
    delay(1000)
结束 函数

' 使用 @{ } 包裹 Arduino 代码
函数 使用嵌入符包裹()
    @{
        int randNumber = random(300);
        Serial.println(randNumber);
        // print a random number from 10 to 19
        randNumber = random(10, 20);
        Serial.println(randNumber);
        delay(50);
    }
结束 函数

注意事项

  • 原生代码中没有特定语法格式时,无需使用 @{ } 包裹

  • 建议使用原生代码的位置在函数、事件或有作用域的语句块中,不建议在函数或事件外使用

  • 使用的原生代码中不能含有语法错误、编译时轻语言编译器不会检查原生代码

  • 原生代码中如果使用了第三方类,需添加对应的引用