1 Star 0 Fork 313

jiajianfa / magic-script

forked from ssssssss-team / magic-script 
加入 Gitee
与超过 1200万 开发者一起发现、参与优秀开源项目,私有仓库也完全免费 :)
免费加入
克隆/下载
贡献代码
同步代码
取消
提示: 由于 Git 不支持空文件夾,创建文件夹后会生成空的 .keep 文件
Loading...
README
MIT

magic-script

介绍

magic-script是一款基于JVM的脚本语言,目前主要是为magic-api项目设计。

应用案例

脚本语法

关键字

关键字 含义
var 定义变量
if 用在条件语句中,表明当条件不成立时的分支
for 循环语句
in 与 for 配合使用
continue 执行下一次循环
break 跳出循环
return 终止当前过程的执行并正常退出到上一个执行过程中
try 用于捕获可能发生异常的代码块
catch 与 try 关键字配合使用,当发生异常时执行
finally 与 try 关键字配合使用,finally 块无论发生异常都会执行
import 导入 Java 类或导入已定义好的模块
as 与 import 关键字配合使用,用作将导入的 Java类或模块 命名为一个本地变量名
new 创建对象
true 基础类型之一,表示 Boolean 的:真值
false 基础类型之一,表示 Boolean 的:假值
null 基础类型之一,表示 NULL 值

运算符

数学运算 比较运算 逻辑运算
+ 加法 < 小于 && 并且
- 减法 <= 小于等于 || 或者
* 乘法 > 大于
/ 除法 >= 大于等于
% 取模 == 等于
!= 不等于

类型

类型 写法
byte `123b`、`123B`
short `123s`、`123S`
int `123`
long `123l`、`123L`
float `123f`、`123F`
double `123d`、`123D`
BigDecimal `123m`、`123M`
boolean `true`、`false`
string `'hello'`
string `"hello"`
string `"""多行文本块,主要用于编写SQL"""`
lambda `()=>expr`、`(param1,param2....)=>{...}`
list `[1,2,3,4,5]`
map {key : value,key1 : value}
{\$key : "value"}//$key表示动态从变量中获取key值

一元运算符

您可以通过一元运算-符将数字取反,例如-234。要取反布尔表达式,可以使用!运算符,例如!true

算术运算符

支持常见的算术运算符,例如1 + 2 * 3 / 4 % 2

比较运算符

23 < 3423 <= 3423 > 3423 >= 34true != false23 == 34

比较运算符结果为boolean类型

逻辑运算符

除了一元运算!符,您还可以使用&&||。就像Java中一样,运算符也是一种短路运算符。如果&&左边计算为false,则不会计算右边。如果||左侧为true,则不会计算右边

三元运算符

三元运算符是if语句的简写形式,其工作方式类似于Java中,例如true ? "yes" : "no"

for循环

当前for循环只支持两种,循环集合或Map

循环集合

import 'java.lang.System' as System;
var list = [1,2,3];
for(index,item in list){    //如果不需要index,也可以写成for(item in list)
    System.out.println(index + ":" + item);
}
/*
结果:
0:1
1:2
2:3
*/

循环指定次数

var sum = 0;
for(value in range(0,100)){    //包括0包括100
    sum = sum + value; //不支持+= -= *= /= ++ -- 这种运算
}
return sum;
/*
结果:5050
*/

循环map

import 'java.lang.System' as System;
var map = {
    key1 : 123,
    key2 : 456
};
for(key,value in map){    //如果不需要key,也可以写成for(value in map)
    System.out.println(key + ":" + value);
}
/*
结果:
key1:123
key2:456
*/

Import导入

导入Java类

import 'java.lang.System' as system;//导入静态类并赋值给system作为变量
import 'javax.sql.DataSource' as ds;//从spring中获取DataSource并将值赋值给ds作为变量
import 'org.apache.commons.lang3.StringUtils' as string;//导入静态类并赋值给ds作为变量

System.out.println('调用System打印');//调用静态方法
System.out.println(ds);
System.out.println(string.isBlank('')); //调用静态方法

new创建对象

创建对象

import 'java.util.Date' as Date;//创建之前先导包,不支持.*的操作
return new Date();

导入已定义的模块

import log; //导入log模块,并定义一个与模块名相同的变量名
//import log as logger; //导入log模块,并赋值给变量 logger
log.info('Hello {}','Magic API!')
MIT License Copyright (c) 2020 小东 Permission is hereby granted, free of charge, to any person obtaining a copy of this software and associated documentation files (the "Software"), to deal in the Software without restriction, including without limitation the rights to use, copy, modify, merge, publish, distribute, sublicense, and/or sell copies of the Software, and to permit persons to whom the Software is furnished to do so, subject to the following conditions: The above copyright notice and this permission notice shall be included in all copies or substantial portions of the Software. THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE.

简介

暂无描述 展开 收起
Java
MIT
取消

发行版

暂无发行版

贡献者

全部

近期动态

加载更多
不能加载更多了
Java
1
https://gitee.com/itjoyee/magic-script.git
git@gitee.com:itjoyee/magic-script.git
itjoyee
magic-script
magic-script
master

搜索帮助