Spring 2.0+ JRuby 快速入门二(Ruby快速入门)
2008-11-17 20:14
531 查看
Ruby快速入门
Ruby无疑是受到关注最多的动态语言, JRuby是用Java代码实现的Ruby解释器,是Ruby到Java的字节码编译器。2006年9月,Sun收购了JRuby,JRuby的核心成员Charles Nutter和Thomas Enobo也加入了Sun公司。从这次收购行为中可以看出Ruby 在Sun 战略中的地位,Ruby 很有可能成为JVM第一个支持的动态语言。
系统学习Ruby的语言已经远远超出了本文的范畴,在这一小节里,我们将通过一些零散的小段代码感受一下Ruby语言,或许这对于Ruby入门有一定的引导作用。
对于初学者来说,我们推荐安装Ruby Entry Package for Win32版本的Ruby,它是由马康弘先生在Cygwin版Ruby的基础上添加了安装程序后制作而成的,特别适合初学者安装使用。你可以从http://homepage1.nifty.com/arima/ruby获取安装程序。
在安装完成后,打开DOS窗口,输入以下的命令以测试Ruby是否安装成功:
D:/>ruby -v
ruby 1.8.6 (2007-03-13 patchlevel 0) [i386-mswin32]
如果安装成功,将如上所示打出Ruby的版本号信息。通过开始菜单->程序->Ruby-xx-yy->fxri打开Ruby的交互式窗口开始体验Ruby的魅力:
图 1 fxri界面
Hello World
通过puts打印出“Hello World”:
irb(main):001:0> puts "Hello World"
Hello World
=> nil
puts在Ruby中是一个简单的打印输出命令。后面的“=> nil”表示表达式的结果。Puts总是返回nil,相当于Java的null。
即时计算器
irb(main):006:0> 10+2
=> 12
irb(main):007:0> 3*4
=> 12
irb(main):008:0> 3**3
=> 27
irb(main):009:0> Math.sqrt(16)
=> 4.0
正如你所看到的,你只要输入运算式并回车就可以立即得到运行结果,这相当于计算器的功能。“**”表示进行幂运算,而Math.sqrt()表示进行平方运算。Math是Ruby内建的数学模块。在Ruby中,模块将类似的方法聚集在同一个“家族”的名下。因此,Math也包括sin()、cos(攀?畱瑯?? ?o??ū)这样的方法。计算器只能打出结果,那么我们如果引用这些结果呢?这需要使用到变量。
将结果赋值给变量
irb(main):011:0> a = 3*5
=> 15
irb(main):012:0> b =2+3
=> 5
irb(main):013:0> Math.sqrt(a+b)
=> 4.47213595499958
上面的代码定义了两个变量,第三行代码引用变量进行计算。
定义方法
irb(main):015:0> def greeting_1
irb(main):016:1> puts "How are you!"
irb(main):017:1> end
=> nil
上面的代码中第1行“def greeting”标志着方法定义的开始。它告诉Ruby当前正在定义一个名为greeting的方法。下面一行是方法体:puts "How are you!"。最后,也就是第3行“end”通知Ruby已经完成了方法的定义。Ruby通过 “=> nil”进行回应,说明已经正确定义了一个方法。
下面的代码定义了一个带参的方法:
irb(main):021:0> def greeting_2(name)
irb(main):022:1> puts "How are you,#{name}"
irb(main):023:1> end
“#{name}”是Ruby在某个字符串中引用变量的方法,相当于Java的"How are you"+name,你也可以为入参指定一个默认值:
irb(main):024:0> def greeting_3(name = "John")
irb(main):025:1> puts "How are you,#{name}"
irb(main):026:1> end
=> nil
Ruby无疑是受到关注最多的动态语言, JRuby是用Java代码实现的Ruby解释器,是Ruby到Java的字节码编译器。2006年9月,Sun收购了JRuby,JRuby的核心成员Charles Nutter和Thomas Enobo也加入了Sun公司。从这次收购行为中可以看出Ruby 在Sun 战略中的地位,Ruby 很有可能成为JVM第一个支持的动态语言。
系统学习Ruby的语言已经远远超出了本文的范畴,在这一小节里,我们将通过一些零散的小段代码感受一下Ruby语言,或许这对于Ruby入门有一定的引导作用。
对于初学者来说,我们推荐安装Ruby Entry Package for Win32版本的Ruby,它是由马康弘先生在Cygwin版Ruby的基础上添加了安装程序后制作而成的,特别适合初学者安装使用。你可以从http://homepage1.nifty.com/arima/ruby获取安装程序。
在安装完成后,打开DOS窗口,输入以下的命令以测试Ruby是否安装成功:
D:/>ruby -v
ruby 1.8.6 (2007-03-13 patchlevel 0) [i386-mswin32]
如果安装成功,将如上所示打出Ruby的版本号信息。通过开始菜单->程序->Ruby-xx-yy->fxri打开Ruby的交互式窗口开始体验Ruby的魅力:
图 1 fxri界面
Hello World
通过puts打印出“Hello World”:
irb(main):001:0> puts "Hello World"
Hello World
=> nil
puts在Ruby中是一个简单的打印输出命令。后面的“=> nil”表示表达式的结果。Puts总是返回nil,相当于Java的null。
即时计算器
irb(main):006:0> 10+2
=> 12
irb(main):007:0> 3*4
=> 12
irb(main):008:0> 3**3
=> 27
irb(main):009:0> Math.sqrt(16)
=> 4.0
正如你所看到的,你只要输入运算式并回车就可以立即得到运行结果,这相当于计算器的功能。“**”表示进行幂运算,而Math.sqrt()表示进行平方运算。Math是Ruby内建的数学模块。在Ruby中,模块将类似的方法聚集在同一个“家族”的名下。因此,Math也包括sin()、cos(攀?畱瑯?? ?o??ū)这样的方法。计算器只能打出结果,那么我们如果引用这些结果呢?这需要使用到变量。
将结果赋值给变量
irb(main):011:0> a = 3*5
=> 15
irb(main):012:0> b =2+3
=> 5
irb(main):013:0> Math.sqrt(a+b)
=> 4.47213595499958
上面的代码定义了两个变量,第三行代码引用变量进行计算。
定义方法
irb(main):015:0> def greeting_1
irb(main):016:1> puts "How are you!"
irb(main):017:1> end
=> nil
上面的代码中第1行“def greeting”标志着方法定义的开始。它告诉Ruby当前正在定义一个名为greeting的方法。下面一行是方法体:puts "How are you!"。最后,也就是第3行“end”通知Ruby已经完成了方法的定义。Ruby通过 “=> nil”进行回应,说明已经正确定义了一个方法。
下面的代码定义了一个带参的方法:
irb(main):021:0> def greeting_2(name)
irb(main):022:1> puts "How are you,#{name}"
irb(main):023:1> end
“#{name}”是Ruby在某个字符串中引用变量的方法,相当于Java的"How are you"+name,你也可以为入参指定一个默认值:
irb(main):024:0> def greeting_3(name = "John")
irb(main):025:1> puts "How are you,#{name}"
irb(main):026:1> end
=> nil
相关文章推荐
- Spring 2.0+ JRuby 快速入门三(调用方法)
- Spring 2.0+ JRuby 快速入门五(其它支持功能)
- Spring 2.0+ JRuby 快速入门一(简介)
- Spring Boot 2.0 WebFlux 上手系列课程:快速入门(一)
- Spring Boot 2.0 的快速入门(图文教程)
- Spring Boot 2.0 的快速入门(图文教程)
- Spring Boot 2.0 + zipkin 分布式跟踪系统快速入门
- spring-mvc 快速入门
- Spring Boot RabbitMQ快速入门 (2)
- 快速入门1springboot
- Structs+Spring+Hibernate快速入门
- 初学 快速入门 Spring5.0框架
- Spring Cloud 快速入门esclipse快速搭建微服务框架 (一)-注册与发现
- SpringData 基于SpringBoot快速入门
- SpringBoot快速入门(非maven)
- 深入Spring Boot (一):快速入门
- NSIS 2.0界面快速入门
- Spring Web Flow 2.0 入门
- Eclipse3.0下Struts +spring+ hibernate快速入门(1)
- Spring Boot快速入门(五):使用MyBatis(注解形式)进行数据库操作