ruby 入门安装 以及语法学习 简介

希望对刚要接触ruby的人有点帮助.我个人也是新手
这段时间,准备空闲的时候学习一下 ruby,我个人主要是用于结合web产品写自动化测试工具。
ruby 下载地址:
http://www.ruby-lang.org/en/downloads/
netbeans下载地址:
http://netbeans.org/downloads/start.html?platform=windows&lang=zh_CN&option=ruby

安装rails
打开命令行窗口,输入并执行命令gem install rails --remote
或者先下载:
从URL地址http://rubyforge.org/frs/?group_id=307&release_id=4878下载rails- 1.0.0.gem和rails-1.0.0.zip。将下载到的文件保存到同一目录下(D:\RoR)。
打开命令行窗口,进入D:\RoR目录下,执行命令gem install rails即可完成安装。
Ruby是一种简单的面向对象编程语言,十分容易上手,并且功能强大。她是一个日本的Yukihiro Matsumoto(大家都叫他Matz.)在1995年首次发布的。Ruby是面向对象的编程语言,她追求的是“简便快捷的面向对象编程”。Ruby是解释型语言,因此不需编译即可快捷地编程。同时Ruby具有类似Perl的强大的文本处理功能,她可并不只是个玩具,您可以用她来进行实用的编程
◆用模块进行混合插入(Mixin)  Ruby故意舍弃了多重继承,但拥有混合插入功能。使用模块来超越类的界限来共享数据和方法等。
◆迭代器  该功能可以将循环抽象化。 ◆闭包  可以将某过程片段对象化。对象化后的该过程片段就称作闭包。 ◆功能强大的字符串操作/正则表达式  以Perl为样板创造出了功能强大的字符串操作和正则表达式检索功能。 ◆拥有超长整数  添加超长整数功能后,可以计算非常大的整数。例如计算400的阶乘也轻而易举。 ◆具有错误处理功能  错误处理功能可以使您编写代码处理出错情况。 ◆可以直接访问OS  Ruby可以使用(UNIX的)绝大部分的系统调用。单独使用Ruby也可以进行系统编程。 ◆动态加载  若OS支持的话,可以在运行时读入对象文件。
======================================
demo 启动netbeans 新建rubyapplication应用程序
在main.rb 上写入: puts "Hello World"


经典到烂的Hello World。比java省事很多
2.Ruby中的方法。使用def定义,后面跟方法名,要小写。
Ruby代码
def saysomething
puts("Hello")
end
===================================
ruby学习
颜勇青
Ruby简介
Ruby是一种简单的面向对象编程语言,十分容易上手,并且功能强大。她是一个日本的Yukihiro Matsumoto(大家都叫他Matz.)在1995年首次发布的。Ruby是面向对象的编程语言,她追求的是“简便快捷的面向对象编程”。Ruby是解释型语言,因此不需编译即可快捷地编程。同时Ruby具有类似Perl的强大的文本处理功能,她可并不只是个玩具,您可以用她来进行实用的编程。
Ruby优点
◆解释器
 Ruby是解释型语言,其程序无需编译即可轻松执行。
◆变量无类型
 Ruby的变量没有类型,因此不必为静态的类型匹配而烦恼。相应地,错误检查功能也变弱了。
◆不需要变量声明
 所有变量均无需声明即可立即使用。另外,从变量名即可判断出是何种变量(局部变量,全局变量,实例变量)。
◆语法简单
 语法比较简单,类似Algol系语法。
◆不需要内存管理
 具有垃圾回收(Garbage Collect,GC)功能,能自动回收不再使用的对象。
◆一切都是对象
 Ruby从一开始就被设计成纯粹的面向对象语言,因此以整数等基本数据类型为首的所有东西都是对象,它们都有发送信息的统一接口。
◆类,继承,方法
 Ruby当然具有面向对象语言的基本功能。
◆特殊方法
 可向某对象添加方法。例如,可以把GUI按钮被按下时的动作作为方法记述下来,还可以用它来进行原型库(prototypebase)的面向对象编程(有人这么干吧)。
Ruby优点
◆用模块进行混合插入(Mixin)
 Ruby故意舍弃了多重继承,但拥有混合插入功能。使用模块来超越类的界限来共享数据和方法等。
◆迭代器
 该功能可以将循环抽象化。
◆闭包
 可以将某过程片段对象化。对象化后的该过程片段就称作闭包。
◆功能强大的字符串操作/正则表达式
 以Perl为样板创造出了功能强大的字符串操作和正则表达式检索功能。
◆拥有超长整数
 添加超长整数功能后,可以计算非常大的整数。例如计算400的阶乘也轻而易举。
◆具有错误处理功能
 错误处理功能可以使您编写代码处理出错情况。
◆可以直接访问OS
 Ruby可以使用(UNIX的)绝大部分的系统调用。单独使用Ruby也可以进行系统编程。
◆动态加载
 若OS支持的话,可以在运行时读入对象文件。
Ruby安装
window
具体安装:
网站首页 :http://www.ruby-lang.org
下载首页: http://www.ruby-lang.org/en/downloads/ftp
下载 :ftp://ftp.ruby-lang.org/pub/ruby/binaries/mswin32/

Linux
具体安装介绍:
http://dohkoos.name/install-rails-on-ubuntu-810.html

Ruby语法学习
经典到烂的Hello World。比java省事很多
puts "Hello World"

print(“请输入你的名字:")
name = gets()
puts "hello #{name}".upcase
(1)print与puts的区别。print不换行,puts换行]
(2)在ruby里,你想什么时候使用变量就什么时候使用,不必要事先定义,ruby会自己判断变量类型。
(3)ruby和java一样是大小写敏感的。
(4)gets后的括号,和print,puts后的括号一样,都是可选择的,只要不引起误解,都可以去掉。(不建议。)
(5)#{}取变量值


Ruby语法学习
2.Ruby中的方法。使用def定义,后面跟方法名,要小写。
Ruby代码
def saysomething
puts("Hello")
end
传参数
Ruby代码
?
def saysomething(name)
puts("Hello #{name}")
end
注释:单行注释:#号为注释符号,相当于java里的//
多行注释:=begin?=end

Ruby语法学习
Ruby的类定义,与java也类似,也以class 开头,加类名
class?MyClass??
end??

ob?=?MyClass.new

(1)在这个类里面,虽然什么都没有定义,但是Ruby会自动的继承Object类。所以,可以调用ob.class

(2)类名的第一个字母必须大写
Ruby语法学习
2.类实例和实例变量 :
class?Dog??
??? ? def?set_name(name)??
????? ? ??@dogname?=?name??
???? end
def?get_name(name)??
????? ? ??return @ dogname
???? end
end
dog?=?Dog.new??
dog.set_name("Jack")??
puts?dog.get_name??
(1)@dogname此为实例变量,属于Dog实例,不需要事先声明
(2)如果不给@dogname设值,即不先调用dog.set_name("Jack"),而直接puts dog.get_name,不会像java那样获得空指针异常,返回一个nil

Ruby语法学习
继承,与java一样,也是单继承。
例如:
class?Thing
def?get_name??
????????return?@name??
??????end
def?set_name(?aName?)??
????????@name?=?aName??
??????end?
End
class?Treasure?< Thing
End

(1)继承写法如下class Treasure < Thing
(2)super( aName, aDescription )与java功能相同
Ruby语法学习
ruby中的array与java中的有区别。它可以在一个array里存放多种类型。
Ruby代码
a?=?['hello',1.0,1]??
??
puts(a[0],a[1])??
2.ruby可以数组越界。。。。超出数组返回nil
3.ruby数组可以存放方法
def?hello??
????return?"hi"??
end??
??
a?=?['hello',hello,1]??
??
puts(a[0],a[1])??

Ruby语法学习
4多维数组创建方法,先创建一个数组,再在该数组里添加数组。
a?=?[????[1,2,3,4],???
?????????[5,6,7,8],???
?????????[9,10,11,12],???
?????????[13,14,15,16]??]??
5,数组遍历使用for...in...end,与java里的foreach循环很相似

a?=?[['one','two','three','four'],[1,2,3,4]]??
??
for?i?in?a??
????for?j?in?i??
???????puts?j???
????end??
end?
Ruby语法学习
ruby里的hash应该就是java里的map了。
创建方法:
h1?=?Hash.new??
h2?=?Hash.new("hello")??
h1 = Hash.new
h2 = Hash.new("hello")

这两个都创建了一个Hash,
区别是:
在h1里如果找不到对应的值则返回nil,h2则返回hello
Ruby语法学习
1.for循环,上面有用过,类似java的foreach循环
Ruby代码
for?i?in?[1,2,3]?do??
????puts?i??
end??
for i in [1,2,3] do
puts i
end

do可省略
另一种写法,有点陌生
Ruby代码
[1,2,3].each?do?|i|??
????puts?i??
end??

Ruby语法学习
while循环,看代码。
Ruby代码
while?tired???
???sleep???
end???
sleep?while?tired???
while tired
sleep
end
sleep while tired

这两段代码效果相同。不是java里while与do...while的区别.如果要do...while的效果,要这么写
Ruby代码
begin?puts(x)?end?while?(x?<?1)?
Ruby语法学习
导入库:
#system
require 'rubygems‘
require 'hpricot'
require 'xmlrpc/client'
require 'open-uri'
require 'timeout'
require 'domain/list_page'
require 'domain/site'
require 'common/path_dispose'
#db
require "active_record"
Ruby语法学习
连接数据库:
require 'rubygems‘
require 'active_record‘
ActiveRecord::Base.establish_connection(
:adapter => "mysql",
:host => "10.1.6.211",
:username => "yyq",
:password => "yyq",
:database => "amazon"
)
ActiveRecord::Base.connection.execute 'SET NAMES UTF8‘

class Comment<ActiveRecord::Base
End
类名对应表
Ruby语法学习
查询书的isbn条码
class Comment<ActiveRecord::Base
def self.query_book_isbn(name)
bookname = find(:first,:conditions => ["isbn = ?",name])
return bookname != nil
end
End
拼sql语句查询
def self.query_this_url(start,pagesize)
sql = "select id,url,fix from producturls limit #{start},#{pagesize}"
mp3list = find_by_sql(sql)
return mp3list
end
Ruby应用
抓点评内容:
以点评这个为例:http://site.taobao.com/1512/site-140633.htm
拿下第一页的10条点评
require 'rubygems'
require 'hpricot'
require 'open-uri'
begin
url="http://site.taobao.com/1512/site-140633.htm";
doc = Hpricot(open(url))
doc.search("//div[@class='gain-txt']/") do |div|
puts div.inner_text
puts “下一条"
end
end
Ruby总结
* 语法简单
* 垃圾回收
* 可移植性
* 动态载入
* 完全免费
* 正则表达式
  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值