2008-03-11
Elite教程系列(一):快速上手
关键字: elite aom apusic kingdee
一:什么是Elite.
更多的信息,你可以查看 http://www.operamasks.org 浏览
二:关于本教程的目录
初步的打算:
第一篇:快速上手
第二篇:数据类型及其控制语句
第三篇:内置函数及其扩展
第四篇:集成AOM的应用
第五篇:独立使用
第六篇:思考
今天我们先来熟悉下Elite长的什么样子,第一篇:快速上手
三:安装
当前最新elite版本为0.2,可以从这里下载
http://sourceforge.net/project/showfiles.php?group_id=214934
里面包括elite.jar,elite-src.jar,以及两个启动的脚本
四:运行
elite自带了一个交互的shell
在windows下运行
在*nix下运行
或者直接运行
启动的界面如下:
看到> 说明已经启动成功,我们先来编写第一个例子:
注:
elite是基于java的,在运行请前先确认你正确安装了jdk。这方面的资料google下会有很多,我们不多做介绍。
五:Hello World
每个程序的开篇都是Hello World,我们也不例外,让我们开始elite的Hello world
1:define 在这里是关键字,用来定义变量
2:print 同于常用的System.out.println(hello),这里的括号并不能省略,个人感觉有点不太喜欢,还是偏好括号可选的语法。
同样你可以演练一样简单的计算器,来熟悉下shell
(这里我们故意的用0做除数,目的就是想查看它报错)
六:函数
看起来似乎不习惯,OK,我们修改下
哦,这个看起来跟我们普通的函数还长的有点像。
我们能否对name做更多一点操作呢?
譬如:sayHello2(‘martin’),能否自动将首字母大写呢?使用过ruby的朋友都知道,ruby的字符对象有个capitalize 方法,
Elite内置的方法并没有提供这样的功能,不过Elite够强大,允许你如ruby一样,打开对象,添加属于你自己的方法。你可以通过attach来追加新的方法。
capitalize是方法名,{} 之间是代码块。在代码块访问本身对象,你可以通过关键字this来访问。
现在我们就可以重新定义我们的sayHello了
七:OO!
是的,我们好像漏掉了这一点。但是细心的读者难道不曾想过,elite基于java的,java中的OO同样也是elite中的OO.我们这里介绍的是更多有趣点的东西。
Ruby,号称一切皆对象(Oh,my god,老掉牙的话题了)。
先从new开始说起:在ruby中,new是object的一个方法
而不是我们java中
在Elite中你不仅仅可以保持原来的语法,还可以同时使用这一新的语法
哦,看起来不错。不过这个太简单了点。OK,我们继续
1:)我们定义一个新的class:Greeting
2:)通过define定义属性 name
4:)构造函数,这个和java一样,没啥区别
6:)定义sayHello 函数,返回一串字符。这里或许有同学要疑问了,上面name是包括在${}里面的,为什么到这里不要{}了呢,这个其实是一样的。简洁就是美,去掉之
9:)实例化一个Greeting对象,并传递参数’Martin’赋值给name属性
10:)调用print属性sayHello的结果
12:)修改name的属性值。怎么不需要setter?如果还保持那些,不如回家继续写java代码算了
13:)重新输出
10、13:)这里我们采用两种不同的输出,仅仅想说明elite的有趣性。我们会再以后的章节详细介绍的。
执行,为了能让elite在任何地方执行,建议你将路径添加到当前的PATH中,并且添加ELITE_HOME至当前环境中。
现在再执行
会看到输入的结果
通过new Object还可以动态的创建对象
八:来点更精彩的
在elite中运行你自己定义语法,来自于sampels/dsl.xel
Cool!
九:接下来
敬请关注 elite:)后面的文章更精彩,o(∩_∩)o...
更多的信息,你可以查看 http://www.operamasks.org 浏览
二:关于本教程的目录
初步的打算:
第一篇:快速上手
第二篇:数据类型及其控制语句
第三篇:内置函数及其扩展
第四篇:集成AOM的应用
第五篇:独立使用
第六篇:思考
今天我们先来熟悉下Elite长的什么样子,第一篇:快速上手
三:安装
当前最新elite版本为0.2,可以从这里下载
http://sourceforge.net/project/showfiles.php?group_id=214934
里面包括elite.jar,elite-src.jar,以及两个启动的脚本
四:运行
elite自带了一个交互的shell
在windows下运行
bin/elite.cmd
在*nix下运行
bin/elite.sh
或者直接运行
java -jar elite.jar
启动的界面如下:
看到> 说明已经启动成功,我们先来编写第一个例子:
注:
elite是基于java的,在运行请前先确认你正确安装了jdk。这方面的资料google下会有很多,我们不多做介绍。
五:Hello World
每个程序的开篇都是Hello World,我们也不例外,让我们开始elite的Hello world
>define hello = "Hello World" >print(hello) >Hello World
1:define 在这里是关键字,用来定义变量
2:print 同于常用的System.out.println(hello),这里的括号并不能省略,个人感觉有点不太喜欢,还是偏好括号可选的语法。
print hello
同样你可以演练一样简单的计算器,来熟悉下shell
(这里我们故意的用0做除数,目的就是想查看它报错)
六:函数
>define sayHello = {name=>"Hello,$name"}
>sayHello("martin")
>Hello martin
看起来似乎不习惯,OK,我们修改下
>define sayHello(name){"Hello $name"}
>sayHello("martin")
>Hello martin
哦,这个看起来跟我们普通的函数还长的有点像。
我们能否对name做更多一点操作呢?
譬如:sayHello2(‘martin’),能否自动将首字母大写呢?使用过ruby的朋友都知道,ruby的字符对象有个capitalize 方法,
Elite内置的方法并没有提供这样的功能,不过Elite够强大,允许你如ruby一样,打开对象,添加属于你自己的方法。你可以通过attach来追加新的方法。
String.attach('capitalize') {
if (this.length > 0) {
Character.toUpperCase(this[0]) + this[1..*];
} else {
this;
}
}
capitalize是方法名,{} 之间是代码块。在代码块访问本身对象,你可以通过关键字this来访问。
现在我们就可以重新定义我们的sayHello了
define sayHello3 = {name =>”Hello ${name.capitalize}”}
七:OO!
是的,我们好像漏掉了这一点。但是细心的读者难道不曾想过,elite基于java的,java中的OO同样也是elite中的OO.我们这里介绍的是更多有趣点的东西。
Ruby,号称一切皆对象(Oh,my god,老掉牙的话题了)。
先从new开始说起:在ruby中,new是object的一个方法
user = User.new
而不是我们java中
User user= new User()
在Elite中你不仅仅可以保持原来的语法,还可以同时使用这一新的语法
>define a = new String('aa')
>a
>aa
>define b = String.new('bb')
>b
>bb
哦,看起来不错。不过这个太简单了点。OK,我们继续
1:)我们定义一个新的class:Greeting
2:)通过define定义属性 name
4:)构造函数,这个和java一样,没啥区别
6:)定义sayHello 函数,返回一串字符。这里或许有同学要疑问了,上面name是包括在${}里面的,为什么到这里不要{}了呢,这个其实是一样的。简洁就是美,去掉之
9:)实例化一个Greeting对象,并传递参数’Martin’赋值给name属性
10:)调用print属性sayHello的结果
12:)修改name的属性值。怎么不需要setter?如果还保持那些,不如回家继续写java代码算了
13:)重新输出
10、13:)这里我们采用两种不同的输出,仅仅想说明elite的有趣性。我们会再以后的章节详细介绍的。
执行,为了能让elite在任何地方执行,建议你将路径添加到当前的PATH中,并且添加ELITE_HOME至当前环境中。
现在再执行
elite greeting.xel
会看到输入的结果
通过new Object还可以动态的创建对象
define greeting = new Object{
define name
sayHello(){"Hello $name"}
}
greeting.name = 'Martin'
print(greeting.sayHello())
八:来点更精彩的
在elite中运行你自己定义语法,来自于sampels/dsl.xel
define syntax {
Send :message to :someone
=> print("Hello, ${:someone}! ${:message}.")
}
Send 'Welcome to earth' to 'uncle Martin';
define syntax {
Convert :amount :from into :to
=> :amount[:from] -> :to
}
print(Convert 25 DEM into ECU);
Cool!
九:接下来
敬请关注 elite:)后面的文章更精彩,o(∩_∩)o...
评论
xxjhappy
2008-04-30
大哥 网址打错了吧 正确的应该是 http://www.operamasks.org
hantsy
2008-04-29
第八点看起来比较Cool
魔力猫咪
2008-04-04
elite在AOM中起什么作用?ManagedBean?为什么不使用更成熟的语言,比如Groovy?elite目前版本才0.2,稳定性和性能让人担忧。
发表评论
- 浏览: 94075 次
- 性别:

- 来自: 上海

- 详细资料
搜索本博客
我的相册
3
共 57 张
共 57 张
最近加入圈子
链接
最新评论
-
Elite教程系列(一):快 ...
大哥 网址打错了吧 正确的应该是 http://www.operamasks ...
-- by xxjhappy -
Elite教程系列(一):快 ...
第八点看起来比较Cool
-- by hantsy -
AOM 初体验(一)
还的确是很方便
-- by lgx522 -
Elite教程系列(一):快 ...
elite在AOM中起什么作用?ManagedBean?为什么不使用更成熟的语言 ...
-- by 魔力猫咪 -
Yet another chart plugin ...
哦,是我自己编码的问题~~~sorry
-- by 老熊






评论排行榜