ruby on rails入门系列--ruby的基本语法
来源:互联网 发布:linux 复制所有子文件 编辑:程序博客网 时间:2024/04/30 13:32
ruby是一种纯面向对象语言,在ruby的语言中,所操作的东西全部都是对象,如下代码:
"oec2003".length #返回字符串的长度
-123.abs #求负数的绝对值
上面的两行代码非常直观的表现了ruby的特性
ruby中的名称
在ruby中变量,方法的参数,方法名都是以小写字母或者下划线开头。如果变量或者方法名中包含有多个单词,单词全部都是小写,并且单词之间用下划线相连(如:hello_oec2003)。类名,模块和常量名必须以大写字母开头,如果是多个单词组成,每个单词的首字母都是大写,单词间不连下划线。
ruby中的方法
现在就来编写一个ruby中的方法,写一个最简单的hello
def say_hello(name)
result="hello,"+name
return result
end
puts say_hello("oec2003") #返回hello,oec2003
可以看到ruby中的方法是以关键字def定义的 后面跟方法名,以end结束,习惯了c#和java,可能会感到不适很习惯。在方法的内部语句中,如果每条语句都是放在单独的一行,语句的后面就不必加分号。
ruby中的类
ruby中的类同样是以关键字class来定义,随后是类名
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 on rails入门系列--ruby的基本语法
- ruby on rails入门系列--ruby和rails的安装
- Ruby on Rails入门笔记(1)ruby基本语法概念
- ruby on rails 入门
- ruby on rails 入门
- ruby on rails入门系列--一个简单的HelloWorld程序
- Ruby on Rails 入门之:(5) Ruby中基本数据类型
- 我的RUBY之路--第三/四天 ruby on rails first blog / study ruby 基本语法 / Vim 基础快捷键
- ruby on rails 入门系列--rails目录结构简述
- ruby on rails 入门系列--rails目录结构简述
- ruby on rails 入门笔记
- Ruby on Rails 入门 ----respond_to
- ruby on rails 入门注意事项
- Ruby on Rails 入门 ----respond_to
- [2]ruby&ruby on rails入门笔记---Ruby中的异常
- [1]ruby&ruby on rails入门笔记---解决Ruby install bundler SSL证书的问题
- Ruby语言学习系列--基本的ruby语法
- Ruby语言学习系列--基本的ruby语法
- 3.15通信专题报道之一 ---- 一个月有几天?我们的通信企业能算清这笔帐吗?移动的野蛮行径还在继续!
- 表空间性能优化实例
- 使用虚拟机+SoftICE进行源码级驱动调试【入门】ZZ--ATU的大地
- 旅游景点
- 索引性能优化实例
- ruby on rails入门系列--ruby的基本语法
- Debian支持4G内存
- Anatomy of an Android Application
- 4月7日
- Windows 下的 PHP 扩展编程
- 数据表性能优化实例
- [待解决] DatagramPacket类的.getAddress.getHostname()和.getAddress.getHostAddress()是否一样?
- 生活在别处
- hdoj 1992 Tiling a Grid With Dominoes的题解.