Ruby是一种为简单快捷的面向对象编程(面向对象程序设计)而创的脚本语言。
简单介绍
-
Ruby 是开源的,在Web上免费提供,但须要一个许可证。
-
Ruby 是一种通用的、解释的编程语言。
-
Ruby 是一种真正的面向对象编程语言。
-
Ruby 是一种类似于 Python 和 Perl 的server端脚本语言。
-
Ruby 能够用来编写通用网关接口(CGI)脚本。
-
Ruby 能够被嵌入到超文本标记语言(HTML)。
-
Ruby 语法简单,这使得新的开发者可以高速轻松地学习 Ruby。
-
Ruby 与 C++ 和 Perl 等很多编程语言有着类似的语法。
-
Ruby 可扩展性强,用 Ruby 编写的大程序易于维护。
-
Ruby 可用于开发的 Internet 和 Intranet 应用程序。
-
Ruby 能够安装在 Windows 和 POSIX 环境中。
-
Ruby 支持很多 GUI 工具,比方 Tcl/Tk、GTK 和 OpenGL。
-
Ruby 能够非常easy地连接到 DB2、MySQL、Oracle 和 Sybase。
-
Ruby 有丰富的内置函数,能够直接在 Ruby 脚本中使用。
Ruby中的keyword例如以下:
模块定义:module
类定义: class
方法定义:def,undef
检查类型:defined?
条件语句:if,then,else,elsif,case,when,unless
循环语句:for,in,while,until,next,break,do,redo,retry,yield
逻辑推断:not,and,or
逻辑值: true,false
空值: nil
异常处理:rescue,ensure
对象引用:super,self
块的起始:begin/end
嵌入模块:BEGIN,END
文件相关:__FILE__,__LINE__
方法返回:return
别名: alias
注:BEGIN模块相当于C语言中的宏, END模块用来作一些收尾工作。有了require,include,应该取消BEGIN和END的语法定义。
ruby中的运算符例如以下:优先级(由高到低)
[]、[]= 数组下标、数组元素赋值
** 乘冥
!、~、+、- 非、位非、一元加(正号)、负号
*、/、% 乘、除、模
+、- 加、减
>>、<< 右移、左移
& 位与
^、| 位异或、位或
<=、<、>、>= 小于等于、小于、大于、大于等于
<=>、==、===、=~、!=、!~ 各种相等推断(不能重写=~、!=、!~)
&& 短路与
|| 短路或
..、... 区间的開始点到结束点
? : 三元条件运算符
=、%=、~=、/=、-=、+=、|=、&=、>>=、<<=、*=、&&=、||=、**= 各种赋值
defined? 检查类型
not 逻辑非
or、and 逻辑或、逻辑与
if、unless、while、until 推断与循环
begin、end 定义方法,类,模块的范围
注意:
值得注意的是,ruby中没有"++"、"--"一类的运算符,但能够通过"+=1"、"-=1"实现。
ruby标识符的一些约定:
局部变量以小写字母或者下划线开头
全局变量以美元符号开头。
实例变量以@开头
类变量以@@开头
常量或类名以大写字母开头。
ruby中的nilkeyword非常特别。nil表示一个与其它语言中null相类似的空集的概念。和其它语言不通的是,ruby在逻辑推断过程中,仅仅有nul和false表示假,其它全部表达式都表示真。
ruby中的方法
def
end
puts say_hello("oec2003")
能够看到ruby中的方法是以keyworddef定义的后面跟方法名,以end结束,习惯了c#和java,可能会感到不适非常习惯。在方法的内部语句中,假设每条语句都是放在单独的一行,语句的后面就不必加分号。
ruby中的类
class Oec2003
end
在rails中类通常都会继承Base基类
class Oec2003<ActiveRecord::Base
end
表示Oec2003继承Base基类,ruby中的继承是用<实现,Base基类属于模块ActiveRecord中
ruby类中的方法能够加訪问修饰符来限制訪问级别
class Oec2003
end
ruby中的模块
模块的用途有两个。第一:起到了命名空间的作用,使方法的名字不会冲突。第二:能够使在不同类之间共享相同的功能。假设一个类混入了一个模块,那么这个类就拥有模块中全部的实例方法,就好像是在类中定义的一样
module
end
ruby中的控制结构
条件推断语句:条件中推断是否相等使用==,注意不要写成了=
if
elsif count==10
else
end
循环语句:
while循环
while
end
单行while
age=age+1 while age<30
until 循环
a=1
until a>=10
end
for..in..循环
for i in 1..9
end