`
cutesunshineriver
  • 浏览: 201225 次
  • 性别: Icon_minigender_1
  • 来自: 广州
社区版块
存档分类
最新评论

Hello World on Groovy

阅读更多
1、杂学
package groovy

class Foo {

	def static openFile(fileName) {
		new FileInputStream(fileName)
	}

	def static foo(str) {
		str?.reverse()
	}

	def static returnWhat() {
		println "returnWhat() executed!"
		this
	}

	public static void main(String[] args) {

		/* 
		 * 无需返回申明,自动返回最后出现的变量(条件语句中会返回空)
		 * 方法可以链式执行
		 */
		println returnWhat().returnWhat().returnWhat()

		/* openFile方法不强制你抛出异常 */
		try {
			openFile("nonexistentfile" )
		} catch(FileNotFoundException ex) {
			println ex
		}

		/* 安全导航操作符?.只在对象不为空时调用 */
		println foo('evil' )
		println foo(null)

		/* 闭包、循环方式 */
		List lst = [1, 2, 3]
		lst.each { print "$it " }
		print "\n"
		for(j in 5..9) {
			print j + " "
		}
		print "\n"
		10.upto 15, { print "$it " }
		print "\n"
		3.times {   print "--\n" }
		0.step(10, 2) { print "$it " }

		/* 直接调用系统命令 */
		print "\n"
		println "java -version".execute().text

		/* 操作符重载 */
		lst<<4
		println lst
	}
}


输出:
returnWhat() executed!
returnWhat() executed!
returnWhat() executed!
class groovy.Foo
java.io.FileNotFoundException: nonexistentfile (系统找不到指定的文件。)
live
null
1 2 3
5 6 7 8 9
10 11 12 13 14 15
--
--
--
0 2 4 6 8

[1, 2, 3, 4]

二、对象与线程
package groovy

class Customer {

	Integer id;

	String name;

	Date dob;

	static void main(args) {
		def customer = new Customer(id:1, name:"sunny", dob:new Date())
		println "dob is $customer.dob!"

		assert Byte.MAX_VALUE == 127
		assert Byte.MIN_VALUE == -128

		def i = 0, j = 0
		Thread.start {
			while(true) {
				i++
				if (i%1000 == 0 && i/1000 < 3 ) println 'S'
			}
		}

		while(true) {
			j++
			if (j%1000 == 0 && i/1000 < 3 ) println 'M'
		}
	}
}


输出:
dob is Fri Jul 22 17:54:27 CST 2011!
M
S
M
S
M

三、文件操作
package groovy

class FileOperator {

	public static void main(String[] args) {
		def myFile = new File("C:\\ftnstat.stat")
		def printFileLine = {println it}
		myFile.eachLine( printFileLine )
	}
}


输出:
MaxFileUploadParallelNum:0\MaxFileWaitingNum:0\SelectFileTimes:0\UploadFileNum:0\
MaxFileUploadParallelNum:0\MaxFileWaitingNum:0\SelectFileTimes:0\UploadFileNum:0\
MaxFileUploadParallelNum:0\MaxFileWaitingNum:0\SelectFileTimes:0\UploadFileNum:0\
MaxFileUploadParallelNum:0\MaxFileWaitingNum:0\SelectFileTimes:0\UploadFileNum:0\
MaxFileUploadParallelNum:0\MaxFileWaitingNum:0\SelectFileTimes:0\UploadFileNum:0\

四、数据库操作
package groovy

class SqlOperator {

	public static void main(String[] args) {
		def sql = groovy.sql.Sql.newInstance( "jdbc:oracle:thin:@192.168.0.201:1521:oracle9i",
				"gz", "gz", "oracle.jdbc.driver.OracleDriver" )
		def results = []
		sql.eachRow("select * from acl_user", {
			results<<it
			println it.id + " -- ${it.name} "
		})
		println "size = "+results.size()
	}
}


输出:
1227978 -- 钟润甜
1227982 -- 何毅永
792275 -- 赵清喆
1467305 -- 李沈藏
934266 -- 麦燕芬
1596070 -- 徐月平
1792352 -- 吴玉燕
788199 -- 冯晓红
1920836 -- 梁剑梅
1927141 -- 邬国威
size = 10
分享到:
评论

相关推荐

    robotium-example:Android Studio 的 Robotium Hello World 示例

    在"robotium-example-master"项目中,通常会有一个简单的Hello World应用和对应的测试用例。测试用例可能会包含以下步骤: 1. 启动Hello World Activity。 2. 验证屏幕上显示的文本是否为"Hello, World!"。 3. 模拟...

    groovy_in_action_draft_ch_01.pdf

    groovy -e "println 'Hello World'" ``` This command demonstrates the simplicity and ease of use of Groovy for quick scripting tasks. **1.4.2 Using groovy Console** The `groovyConsole` is a GUI-based...

    Android Kotlin开发实例(Hello World!)及语法详解

    本篇将详细讲解Android Kotlin开发实例,包括如何配置环境,以及一个简单的“Hello World”示例。 首先,Kotlin是由JetBrains开发的一种静态类型编程语言,它的设计目标是提高开发效率,减少冗余代码,并提供强大的...

    RubyOnWheels:机器人Ruby

    RubyOnWheels Toast模块,允许您使用...puts "Hello World!" # Prints to Toast's logger motor = Toast :: Motor . new :talon , :can , 1 # Creates a new Talon on the CAN Bus with ID 1 motor . set 0.4 # Set

    gradle user

    ##### Helloworld 示例 一个简单的 Gradle 构建脚本示例: ```groovy task hello { doLast { println 'Hello World!' } } ``` ##### 快捷的任务定义 使用闭包定义任务更加简洁: ```groovy task hello { doLast ...

    AndroidEspresso自动化测试环境搭建.pdf

    在这个例子中,我们创建了一个`ActivityTestRule`,用于启动`MainActivity`,然后在测试方法中使用`onView`和`check`来验证文本“Hello world!”是否可见。 最后,要运行测试,你可以直接在Android Studio中选择...

    Grails帮助文档

    Grails是一个全栈框架,它整合了Spring、Hibernate、Groovy on Grails(GORM)等成熟的技术,提供了MVC(模型-视图-控制器)架构,使得开发人员能够快速构建动态、数据库驱动的Web应用。 ### 2. Groovy语言 Groovy...

    gradle入门到精通公开课视频.txt

    println "Hello, World!" } } ``` - **任务依赖**:通过 `dependsOn` 属性或方法来指定任务之间的依赖关系,例如: ```groovy task hello2(dependsOn: 'hello') { doLast { println "Hello again!" } } `...

    异步应用基础库Reactor.zip

    Reactor 是一个基于 JVM 之上的异步应用基础库。为 Java 、Groovy 和其他 JVM 语言提供了构建基于事件和数据驱动应用的抽象库。...reactor.notify("parse", Fn.event("Hello World!")); 标签:Reactor

    Java使用自动化部署工具Gradle中的任务设定教程

    println "Hello, World!" } ``` 当运行`gradle myTask`时,这段代码会在配置阶段和执行阶段都执行,因为所有在任务块内的代码默认被视为配置代码。 2. 使用`doLast`来指定执行阶段的行为: ```groovy task my...

    RobotiumExample:Android Studio 中的 Robotium 示例

    ```groovy androidTestImplementation 'com.jayway.android.robotium:robotium-solo:6.3.2' ``` 2. **创建测试类**:新建一个继承自`ActivityInstrumentationTestCase2`的测试类,然后注入Solo实例。 3. **设置...

    nanohttpd-2.3.1.jar包

    在这个例子中,服务器会在端口8080监听,并且如果收到GET请求到"/hello"的路径,它会返回"Hello, World!"。对于其他任何请求,它将返回404错误。 此外,NanoHttpd支持POST请求处理,可以通过`session.getFile()`...

    web server 的 cxf 框架及使用说明

    &lt;jaxws:endpoint id="helloWorld" implementor="com.example.HelloWorldServiceImpl" address="/HelloWorld"/&gt; ``` #### 3.4 部署到Web服务器 - 将上述配置和实现打包成WAR文件,然后部署到Web服务器,如Tomcat...

    有可能挑战Java优势的四种技术

    它们允许开发者以较少的代码实现相同的功能,例如在Ruby中实现“Hello, World”只需要一行代码,而在Java中则需要编写完整的类结构。动态语言的类型检查是在运行时进行,这使得开发过程更为灵活。此外,Ruby等动态...

    Android 上的http server程序

    这个例子中,我们创建了一个监听8080端口的服务器,当访问根路径"/"时,返回"Hello, World!"。 **5. 高级特性** 除了基础的HTTP响应外,i-jetty-3.1还支持更复杂的特性,例如: - **静态文件服务**:可以配置服务器...

Global site tag (gtag.js) - Google Analytics