Ruby(面向对象程序设计的脚本语言)入门
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中的方法
如今就来编写一个ruby中的方法,写一个最简单的hello
def say_hello(name)
result="hello,"+name
return result
end
puts say_hello("oec2003") #返回hello,oec2003
能够看到ruby中的方法是以keyworddef定义的后面跟方法名,以end结束,习惯了c#和java,可能会感到不适非常习惯。在方法的内部语句中,假设每条语句都是放在单独的一行,语句的后面就不必加分号。
ruby中的类
ruby中的类相同是以keywordclass来定义,随后是类名
class Oec2003
end
在rails中类通常都会继承Base基类
class Oec2003<ActiveRecord::Base
end
表示Oec2003继承Base基类,ruby中的继承是用<实现,Base基类属于模块ActiveRecord中
ruby类中的方法能够加訪问修饰符来限制訪问级别
class Oec2003
def method1 #没有加不论什么修饰符,默觉得public
end
protected
def method2 #修饰符为proteted ,注意修饰符是写在方法的上面
end
private
def method3
end
end
ruby中的模块
模块和类有点相似,他们都包括一组方法,常量以及其它的类和模块的定义,和类不同的是模块不能创建实例。
模块的用途有两个。第一:起到了命名空间的作用,使方法的名字不会冲突。第二:能够使在不同类之间共享相同的功能。假设一个类混入了一个模块,那么这个类就拥有模块中全部的实例方法,就好像是在类中定义的一样
module Oec2003
end
ruby中的控制结构
条件推断语句:条件中推断是否相等使用==,注意不要写成了=
if count>10
puts "count 大于10"
elsif count==10 #注意此处是elsif 而不是elseif
puts "count等于10”
else
puts "count小于10"
end
循环语句:
while循环
while age<30
puts age
age=+1
end
单行while
age=age+1 while age<30
until 循环
a=1
until a>=10
puts a
a+=1
end
for..in..循环
for i in 1..9
puts i,""
end
Ruby(面向对象程序设计的脚本语言)入门的更多相关文章
- (五)Lua脚本语言入门
---恢复内容开始--- 写完这篇Lua脚本语言入门,自己就要尝试去用Lua脚本语言写esp8266了,,自己现在挺心急的,因为朋友使用esp8266本来说自己帮忙写好程序的,但是用的单片机不一样自己 ...
- (一)Lua脚本语言入门
今天开始自己的Lua语言学习,Lua脚本语言,是介于应用程序和开发其应用程序的底层编程语言之间,,它很方便调用其它语言,它只是在载入时对其进行编译,而不像我们写的单片机程序是预编译的,先编译好然后写入 ...
- (三)Lua脚本语言入门
又要找工作了,变的忧虑了,唯有学习才让内心变得踏实,今天玩了一下午的王者荣耀,正事都忘了...... 如果认为所谓的毅力是每分每秒的"艰苦忍耐"式的奋斗,那这是一种很不足的心理状态 ...
- (三)Lua脚本语言入门(数组)
又要找工作了,变的忧虑了,唯有学习才让内心变得踏实,今天玩了一下午的王者荣耀,正事都忘了...... 如果认为所谓的毅力是每分每秒的“艰苦忍耐”式的奋斗,那这是一种很不足的心理状态.毅力是一种习惯,毅 ...
- Lua脚本语言入门学习其应用教程
Lua脚本可以很容易的被C/C++代码调用,也可以反过来调用C/C++的函数,这使得Lua在应用程序中可以被广泛应用.不仅仅作为扩展脚本,也可以作为普通的配置文件,代替XML,Ini等文件格式,并且更 ...
- elsearch搜索引擎 + painless脚本语言入门
最近项目用到了elsearch,ElasticSearch是一个基于Lucene的搜索服务器.它提供了一个分布式多用户能力的全文搜索引擎. 自从版本6.0之后,其默认脚本语言变为 painless . ...
- Lua游戏脚本语言入门(一)
作者: 沐枫 (第二人生成员) 原文地址:http://job.17173.com/content/2009-01-22/20090122143452606,1.shtml 在这篇文章中,我想向大家介 ...
- (二)Lua脚本语言入门
上一篇文章忘了插入代码了,方便粘贴复制...... 函数 对于c语言就是 void aa()//c语言是用void { print("这是一个函数") } Lua就变成了 func ...
- (二)Lua脚本语言入门(关于函数)
上一篇文章忘了插入代码了,方便粘贴复制...... 函数 对于c语言就是 void aa()//c语言是用void { print("这是一个函数") } Lua就变成了 func ...
随机推荐
- jquery插件库http://www.jq22.com/
http://www.jq22.com/ http://www.jq22.com/jquery/%E5%8A%A0%E8%BD%BD http://www.jq22.com/jquery/%E5%BC ...
- 7.Web Service 调用天气代码
1. 2500多个城市天气预报 WEB服务公用事业 Endpoint:http://webservice.webxml.com.cn/WebServices/WeatherWS.asmx Disco: ...
- 网站平台的favicon.ico的logo
<link rel="shortcut icon" href="http://www.uuop.com/icotemp/2017061703035984/f ...
- seq---生成随机数
seq命令用于产生从某个数到另外一个数之间的所有整数. 语法 seq [选项]... 尾数 seq [选项]... 首数 尾数 seq [选项]... 首数 增量 尾数 选项 -f, --format ...
- 微信小程序从零开始开发步骤(八)引入框架WeUI
首先来看下WeUI的官方介绍: WeUI 是一套同微信原生视觉体验一致的基础样式库,由微信官方设计团队为微信内网页和微信小程序量身设计,令用户的使用感知更加统一.在微信小程序的开发过程中,涉及到的前端 ...
- View_01_LayoutInflater的原理、使用方法
View_01_LayoutInflater的原理.使用方法 本篇博客是郭神博客Android视图状态及重绘流程分析,带你一步步深入了解View(一)的读书笔记的笔记. LayoutInflater简 ...
- JS-网页中分页栏
原理 三部分 我给分页栏分成了3部分 上一页:调用prePage()函数 下一页:调用nextPage()函数 带有数字标识的部,调用skipPage()函数 prePage函数 function p ...
- worktools-git 工具的使用总结(知识点累积)
1.用简单列表的方式查看提交记录git log --pretty=online zhangshuli@zhangshuli-MS-:~/myGit$ git log --pretty=oneline ...
- 用Zebra打造Linux下小型路由器
用Zebra打造Linux下小型路由器 现在的Internet网络相当庞大,不可能在不同的网络之间建立直接的连接,所以这时就必须用路由器为不同网络之间的通信提供路径选择.Linux下搭建路由器价格非常 ...
- HTML5的设计目的是为了在移动设备上支持多媒体
HTML5的设计目的是为了在移动设备上支持多媒体