- 浏览: 20721 次
- 性别:
- 来自: 武汉
-
最新评论
文章列表
groovy学习之闭包的应用
- 博客分类:
- groovy
直接调用或通过call()方法调用
def adder = {x, y -> return x+y}
assert adder(2, 3) == 5
assert adder.call(4, 5) == 9
def benchmark(repeat, Closure worker) {
def start = System.currentTimeMillis()
repeat.times{worker(it)}
def stop = System.currentTimeMillis()
return stop - start
}
def ...
groovy学习之闭包声明
- 博客分类:
- groovy
简单的声明方式,闭包作为参数传递给方法
def log = ''
(1..3).each{element -> log += element}
assert log == '123'
log = ''
(1..3).each{log += it}
assert log == '123'
花括号可以用来构建一个闭包对象或者是groovy代码块
//赋值给变量
def test = {line -> println line}
//作为方法的返回值
def Closure getTest() {
return {element -> ...
groovy学习之Map
- 博客分类:
- groovy
Map声明
def myMap = [a:1, b:2, c:3]
assert myMap.size() == 3
assert myMap['a'] == 1
def emptyMap = [:]
assert emptyMap.size() == 0
def myMap2 = new TreeMap()
myMap2.putAll(myMap)
assert myMap2['a'] == 1
使用Map操作符
如果get(key,default)被调用时,key没有找到并且缺省值被返回,那么key:default对将被增加到map中
def myMa ...
groovy之使用List方法
- 博客分类:
- groovy
使用列表方法:
删除list中为null和重复的元素
def myList = [1, 2, 2, 3, 3, null, 4, null]
def lst = new HashSet(myList).toList()
assert lst.size() == 5
assert lst.grep{it} == [1, 2, 3, 4]
assert List.'package'.name == java.util
常用list方法
assert [1, [2, 3]].flatten() == [1, 2, 3]
assert [1, 2, 3]. ...
groovy之使用List操作符
- 博客分类:
- groovy
使用List操作符
def myList = ['a', 'b', 'c', 'd', 'e', 'f']
//getAt(ranges)
assert myList[0..2] == ['a', 'b', 'c']
//getAt(collection of index)
assert myList[1, 3, 5] == ['b', 'd', 'f']
//putAt(ranges)
myList[0..2] = ['x', 'y', 'z']
assert myList == ['x', 'y', 'z', 'd', 'e', 'f' ]
//removin ...
groovy之List声明
- 博客分类:
- groovy
声明List
def myList = [1,2,3]
assert myList.size() == 3
assert myList.contains(2)
assert myList instanceof ArrayList
def emptyList = []
assert emptyList.size() == 0
def longList = (1..1000).toList()
assert longList.size() == 1000
def lst = new ArrayList()
lst.addAll(myList)
assert lst = ...
使用Ranges
(left..right)
(left..>right)
(right..left)
assert (1..10).contains(5)
assert (1..10).size() == 10
assert (1..<10).size() == 9
def log = ''
for(element in (1..3)) {
log += element
}
assert log == '123'
log = ''
(1..3).each{element ->
log += element
}
ass ...
groovy解析xml
- 博客分类:
- groovy
XML解析提供了XmlParser、XmlSlurper类
XML生成提供了MarkupBuilder、StreamingMarkupBuilder类
XML操作: MarkupBuilder
MarkupBuilder (): Prints markup to System.out
import groovy.xml.*
def xml = new MarkupBuilder()
xml.langs("type":currecy){
language("java")
language(&quo ...
groovy解析json
- 博客分类:
- groovy
groovy内置的groovy.json能很方便的对json进行操作
api: http://docs.groovy-lang.org/latest/html/gapi/groovy/json/JsonBuilder.html
//Instantiates a JSON builder with some existing data structure
import groovy.json.*
def lst = [1,2,3]
def data = [
success: true,
count: lst.size(),
data: lst.collect{[ ...
###类方法的定义的3种类型
##1.
#class
##2.
#class 类名
# def 类名.方法名
# end
#end
##3.
#class 类名
# def seft.方法名
# end
#end
class Student1
end
class
class Student2
def Student2.get
p "object proc define 2"
end
end
Student2::get() ...
ruby学习总结之-----条件判断
- 博客分类:
- ruby
##########条件判断常用的3种:if、unless、case
###then可省略
if 条件1 then
语句1
elsif 条件2 then
语句2
else
语句3
end
#####unless是与if完全相反地语句
unless 条件
语句1
else
语句2
end
#######then可以省略,可以进行值的比较,也可进行正则表达式的匹配,及判断对象是否为某类的实例。
case 想要比较的对象
when 值1
语句1
when 值2
语句2
end
ruby学习总结之-----变量命名及各种迭代器
- 博客分类:
- ruby
##############名字的第一个字符表面该变量的用法###############
1.以小写字母或下划线开头: 局部变量、方法参数、方法名;
2.以美元符做前缀: 全局变量
3.以@符开头: 实例变量
4.以@@开头: 类变量,类变量在使用前必须先初始化
5.以大写字母开头: 类名、模块名和常量
##注意:@后不可以直接跟数字
########################各种循环while、until和for###################
####1.while循环(do可以被省略)
i = 0
while i < 10 do
p i
i += ...
[/color]print、puts、p三个方法的区别:
print("hello","world")
puts("hello","world")
p("hello","world")
1.print方法在输出多个以逗号为分隔符的参数时,会在同一行显示;而对于puts及p方法,会在每个参数后默认加上一个换行符;
2.p方法用于想要观察执行中的程序运行情况的时候,例如:
p "100"
p 10
[size=xx-small][/size]会在终端分别显 ...