以梦为码

Talk is cheap, show me u photo


  • 首页

  • 标签

  • 归档

  • 公益 404

Java如何调用Groovy

发表于 2015-07-11 更新于 2019-07-20 分类于 Document

如果想在Java代码中嵌入Groovy代码,目前主要有三种方式。

GroovyShell

1
2
3
4
5
6
7
8
9
10
11
import groovy.lang.Binding;
import groovy.lang.GroovyShell;
class Groovy {
public static void main(String[] args){
Binding bind = new Binding();
bind.setVariable("greeting", "Hello Groovy!");
GroovyShell shell = new GroovyShell(bind);
Object object = shell.evaluate("greeting");
System.out.println(object);
}
}

结果输出为:

Hello Groovy!
阅读全文 »

Lua学习笔记(4)

发表于 2015-05-28 更新于 2019-07-20 分类于 Note

元表与元方法

元表

Lua中的每个值都有一个元表。table和userdata可以有各自独立的元表,而其他类型的值则共享类型所属的单一元表。Lua在创建新的table时不会创建元表。
使用setmetatable来设置或修改任何table的元表。

1
2
3
4
t = {}
t1 = {}
setmetatable(t, t1)
assert(getmetatable(t) == t1)

任何table都可以作为任何值的元表,而一组相关的table也可以共享一个通用的元表,此元表描述了它们共同的行为。

Lua代码中,只能设置table的元表。若要设置其他类型的值的元表,则必须通过C代码来完成。

阅读全文 »

Lua学习笔记(3)

发表于 2015-05-28 更新于 2019-07-20 分类于 Note

协同程序

Lua将所有关于协同程序的函数放置在一个名为”coroutine”的table中。函数create用于创建新的协同程序,它只有一个参数,就是一个函数,函数代码就是所需执行的内容。create会返回一个thread类型的值,用以表示新的协同程序。通常create的参数是一个匿名函数:

1
2
co = coroutine.create(function () print("hi") end)
print(co) -->thread: 0x7fa97b404f60

一个协同程序可以处于4种不同的状态:

  • 挂起(suspended)
  • 运行(running)
  • 死亡(dead)
  • 正常(normal)
阅读全文 »

Lua学习笔记(2)

发表于 2015-05-28 更新于 2019-07-20 分类于 Note

Lua关系操作符

Lua提供了一下关系操作符:

  • <
  • >
  • <=
  • >=
  • ==
  • ~=

对于table,userdata和函数,Lua是作引用比较的。

Lua逻辑操作符

  • and
  • or
  • not

所有的逻辑操作符将false和nil视为假,而将其他的任何东西视为真。对于操作符and来说,如果它的第一个操作数为假,就返回第一个操作数;不然返回第二个操作数。对于操作符or来说,如果它的第一个操作数为真,就返回第一个操作数;不然返回第二个操作数。

“x=x or v”等价于 if not x then x = v end

为了选出数字x和y中的较大者,可以使用以下语句:

max = (x > y) and x or y

阅读全文 »
1…8910
陈旸

陈旸

杭州
37 日志
9 分类
11 标签
© 2020 陈旸
由 Hexo 强力驱动 v3.9.0
|
主题 – NexT.Mist v7.2.0