Groovy代码示例 – groovy类与脚本
groovy脚本
main方法与脚本(script)
Main.groovy
class Main {
static void main(String... args) {
println 'Groovy world!'
}
}
- 1)定义了一个类,类名任意
- 2)定义main方法
- 3)main方法体
以上来自于java中的可执行方法的写法,在groovy中想执行一段代码其实有更简洁的方式:
println 'Groovy world!'
效果是一样,只是写法更加简单,上面就是一个最简单的groovy脚本。
script类
还是看这个脚本的例子:
println 'Groovy world!'
脚本最终都要是编译成为class的,groovy编译器会将脚本编译为class并将脚本内容编译为run方法的方法体。因此上面的脚本相当于以下代码:
import org.codehaus.groovy.runtime.InvokerHelper
class Main extends Script {
def run() {
println 'Groovy world!'
}
static void main(String[] args) {
InvokerHelper.runScript(Main, args)
}
}
- 1)继承自Script类
- 2)有返回值的run方法定义
- 3)脚本的内容置于run方法内部
- 4)自动产生main方法
- 5)委托执行run方法
script方法
在script中是这样定义方法的:
//方法定义
int fib(int n) {
n < 2 ? 1 : fib(n-1) + fib(n-2)
}
//方法调用
assert fib(10)==89
你可以将脚本和方法混合放在一起。编译器会将脚本代码编译到方法中,将脚本方法编译到类中。
参考以下代码:
println 'Hello'
int power(int n) { 2**n }
println "2^6==${power(6)}"
- 1)输入语句
- 2)定义方法
- 3)调用方法
上面的脚本相当于以下代码:
import org.codehaus.groovy.runtime.InvokerHelper
class Main extends Script {
int power(int n) { 2**n}
def run() {
println 'Hello'
println "2^6==${power(6)}"
}
static void main(String[] args) {
InvokerHelper.runScript(Main, args)
}
}
- 1)power方法被编译到类中
- 2)其他普通脚本被编译到run中
虽然脚本都被编译成为类,但这个过程对于用户来说是透明的。一旦脚本执行异常,抛出的异常中指向的行号是跟脚本对应的而不是相对应的类代码。
版权声明:
作者:Joe.Ye
链接:https://www.appblog.cn/index.php/2023/05/07/groovy-code-example-class-script/
来源:APP全栈技术分享
文章版权归作者所有,未经允许请勿转载。
共有 0 条评论