2、Starting Groovy
相比于一个传统的java类,一个包含main方法的Groovy类可以如下书写:
代码1:具有main函数的Groovy类
package plswg.edu.groovy.basic// 利用class关键字创建一个groovy类class G01_HelloWorldClass { // 静态的main方法作为程序入口 static main(args) { // 使用println命令输出 println "HelloWorld in class" }}
和Java一样,程序会从这个类的main方法开始执行,和Java的区别是:
class前省略public修饰; main方法前省略public修饰; main方法省略返回值类型voID; main方法形参列表省略类型String[]; 当然,这只是Groovy代码的一种写法,实际上执行Groovy代码完全可以不必需要一个类或main方法,所以更简单的写法如下:package plswg.edu.groovy.basic// 对于groovy程序来说,可以没有类和main方法,直接书写的代码就可以作为脚本运行println "HelloWorld in script"
这段代码仍可以直接运行。
实际上,最终编译器仍会为这段代码生成一个类,类名和文件名相同,只不过从源码的角度上,确实不用写类或者main方法了,这一点很像JavaScript等其它脚本语言。
可以注意到,Groovy将Java中繁琐的System.out.println简化为了println,甚至可以不为形参列表加括号,这都是允许的,Groovy非常简洁,甚至不要求语句末尾的分号(当然,写上分号也无伤大雅)
3、Groovy变量
既然是脚本语言,Groovy的变量也被设计成为了类似的弱类型,实际上Groovy同时支持强类型变量和“弱”类型变量,强类型变量拥有自己的类型,而“弱”类型变量则全部会被编译为Object类型,从代码的角度上,Groovy的变量无需声明类型了:
package plswg.edu.groovy.basic// groovy可以使用类型确定的变量或常量String s1 = "Hello "print s1final String s2 = "World"println s2// 利用def关键字可以定义可变类型的变量或常量def s3 = "Welcome "print s3// 对于可变类型,即随时可以改变其类型,赋予不同的量s3 = 123 // 此时str3被赋予了整型量,所以其类型变为Integer类型println s3s3 += 100 // 整型的str3和整型相加,结果是整型223println s3s3 = true // str3目前是boolean类型println ("Ok " + s3)// 对于局部变量,甚至可以不使用def关键字来定义s4 = "Good job"println s4// 对于数值类型,有如下规则int n1 = 10n2 = n1 / 3println n2 // 对于n1为整数时,10 / 3的结果并不是整数,这说明常量n2并不是整数int n3 = n1 / 3 // 明确定义n3为整数后,相除的结果为整数println n3n2 = n1.intdiv(3)println n2 // intdiv用于进行整除n2 = n1.power(2) // 求平方 groovy方法println n2n2 = n1 ** 2 // 求平方的groovy语法println n2n1 = Math.sqrt(n2) // 求开方 java方法println n1从上面的代码可以看到,Groovy支持有类型的变量,例如 String s;也支持无类型的变量,例如 def s,相当于Java中的Object s;对于无类型的变量,甚至可以不写 def关键字。
final关键字依然作为常量标识,这一点和Java相同。
最后注意一点,Groovy中没有Java中的值类型简单对象,所有的对象都是引用类型对象,例如定义def n = 10,n的类型应该是Integer类型而不是int类型;即便定义了int n = 100,n的类型依然是Integer类型;如果定义了def n = 12.34,则注意,n的类型是BigDecimal类型而不是Double类型,只有显式定义double n = 12.34,n的类型才明确为Double类型(依旧不是double类型)
对于基本算术运算符,Groovy增加了**运算符,表示求幂,x ** y表示求x的y次方;
总结以上是内存溢出为你收集整理的Groovy基本语法(1)全部内容,希望文章能够帮你解决Groovy基本语法(1)所遇到的程序开发问题。
如果觉得内存溢出网站内容还不错,欢迎将内存溢出网站推荐给程序员好友。
欢迎分享,转载请注明来源:内存溢出
评论列表(0条)