Ruby学习之路
本专栏记录了本人Ruby入门学习之路,通过本专栏,可以对Ruby这门编程语言有一个简单的认知,之后的实践和经验的累积就需要各位自己去努力了,再次声明,本文只是记录,如有雷同,那我也不承认是我抄袭。。。溜了溜了。。。
luyaran
像永远快乐的阳光,追求那至高无上的完美乐园。
展开
-
Ruby学习之多线程的使用方式
每个正在系统上运行的程序都是一个进程。每个进程包含一到多个线程。线程是程序中一个单一的顺序控制流程,在单个程序中同时运行多个线程完成不同的工作,称为多线程。Ruby 中我们可以通过 Thread 类来创建多线程,Ruby的线程是一个轻量级的,可以以高效的方式来实现并行的代码,来看下启动一个新的线程的代码格式:# 线程 #1 代码部分Thread.new { # 线程 #2 执行代码}...原创 2019-01-04 13:55:17 · 2681 阅读 · 0 评论 -
Ruby学习之XML, XSLT 和 XPath使用方法
XML就是指可扩展标记语言(eXtensible Markup Language),标准通用标记语言的子集,一种用于标记电子文件使其具有结构性的标记语言。它可以用来标记数据、定义数据类型,是一种允许用户对自己的标记语言进行定义的源语言。 它非常适合万维网传输,提供统一的方法来描述和交换独立于应用程序或供应商的结构化数据。XML的解析器主要有DOM和SAX两种,如下:SAX解析器是基于事件处...原创 2019-01-04 13:15:02 · 471 阅读 · 0 评论 -
Ruby学习之CGI里session的定义和使用
CGI::Session 可以为用户和CGI环境保存持久的会话状态,会话使用后需要关闭,这样可以保证数据写入到存储当中,当会话完成后,我们需要删除该数据,来看实例:#!/usr/bin/ruby require 'cgi'require 'cgi/session'cgi = CGI.new("html4") sess = CGI::Session.new( cgi, "sessi...原创 2019-01-04 11:30:30 · 497 阅读 · 0 评论 -
Ruby学习之CGI里cookie的定义和使用
HTTP协议是无状态协议。但对于一个商业网站,它需要保持不同的页面间的会话信息。如用户在网站注册过程中需要跳转页面,但又要保证之前填写的信息不丢失。这种情况下 Cookie 很好的帮我们解决了问题。几乎所有的网站设计者在进行网站设计时都使用了Cookie,因为他们都想给浏览网站的用户提供一个更友好的、人文化的浏览环境,同时也能更加准确地收集访问者的信息。Cookies集合是附属于Respons...原创 2019-01-04 10:50:17 · 324 阅读 · 0 评论 -
Ruby学习之CGI类&实例化的方法记录
先来看下CGI类的方法列表:序号 方法描述 1 CGI::new([ level="query"]) 创建 CGI 对象。query可以是以下值: query: 没有 HTML 生成输出 html3: HTML3.2 html4: HTML4.0 Strict html4T...原创 2019-01-04 10:20:36 · 294 阅读 · 0 评论 -
Ruby学习之CGI编程基础
Ruby 是一门通用的语言,不仅仅是一门应用于WEB开发的语言,但是呢, Ruby 在WEB应用及WEB工具中的开发是最常见的。我们使用Ruby不仅可以编写自己的SMTP服务器,FTP程序,或Ruby Web服务器,而且还可以使用Ruby进行CGI编程。为了了解CGI是如何工作的,我们来看下从在网页上点击一个链接或URL的流程:1、使用浏览器访问URL并连接到HTTP web 服务器。 2、...原创 2019-01-04 09:46:50 · 484 阅读 · 0 评论 -
Ruby学习之编码和解码 JSON 对象
安装 Ruby JSON 模块命令如下:gem install json我们将下列json数据存储在 input.json 文件中:{ "President": "Alan Isaac", "CEO": "David Richardson", "India": [ "Sachin Tendulkar", "Virender Seh原创 2019-01-03 17:02:46 · 1172 阅读 · 0 评论 -
Ruby学习之使用gem安装驱动MySql2连接MySQL
使用gem安装 mysql2 驱动的命令如下:gem install mysql2来看一个简单的查询MySQL版本的实例:#!/usr/bin/ruby -wrequire 'mysql2' client = Mysql2::Client.new( :host => '127.0.0.1', # 主机 :username => 'root'...原创 2019-01-03 16:52:42 · 1371 阅读 · 1 评论 -
Ruby学习之RubyGems(gem)包管理器的安装和使用
RubyGems 是 Ruby 的一个包管理器,它提供一个分发 Ruby 程序和库的标准格式,还提供一个管理程序包安装的工具,它旨在方便地管理 gem 安装的工具,以及用于分发 gem 的服务器。这类似于 Ubuntu 下的apt-get, Centos 的 yum,Python 的 pip。如果我们的 Ruby 低于 1.9 版本,也可以通过手动安装,步骤很简单,通过https://ruby...原创 2019-01-03 15:42:05 · 10654 阅读 · 2 评论 -
Ruby学习之正则表达式的使用
正则表达式是一种特殊序列的字符,它通过使用有专门语法的模式来匹配或查找字符串集合,并且用事先定义好的一些特定字符、及这些特定字符的组合,组成一个"规则字符串",这个"规则字符串"用来表达对字符串的一种过滤逻辑,它从字面上看是一种介于斜杠之间或介于跟在 %r 后的任意分隔符之间的模式,来看下它的语法:/pattern//pattern/im # 可以指定选项%r!/usr/local...原创 2019-01-03 15:08:13 · 1203 阅读 · 0 评论 -
Ruby学习之面向对象的使用
Ruby是纯面向对象的语言,其中的一切都是对象,对于这一点,相信大家都不会反驳,它其中最原始的值诸如字符串、数字,甚至连 true 和 false 都是对象,类本身也是一个对象,是 Class 类的一个实例,它用于指定对象的形式,它结合了数据表示法和方法,把数据整理成一个整齐的包。类中的数据和方法被称为类的成员。我们这次就来详细的看下。当我们定义一个类的时候,就相当于定义了一个数据类型的蓝图,...原创 2019-01-03 14:41:50 · 299 阅读 · 0 评论 -
Ruby学习之异常处理机制
异常和执行总是被联系在一起,假如我们要打开一个不存在的文件,但是没有处理这种情况,那么,程序运行的后果就可想而知了,很明显,程序停止运行。而异常就是用于处理各种类型的错误,这些错误可能在程序执行期间发生,所以要采取适当的行动,而不至于让程序完全停止。Ruby有一套非常完善的处理异常的机制,就是我们可以在begin或者end块中,附上可能抛出异常的代码,并且使用rescue子句告诉程序如何处理,语法...原创 2019-01-03 13:23:51 · 366 阅读 · 0 评论 -
Ruby学习之File 类和方法&Dir 类和方法
File 表示一个连接到普通文件的 stdio 对象。open 为普通文件返回该类的一个实例,来看下它的类方法:序号 方法 & 描述 1 File::atime( path) 返回 path 的最后访问时间。 2 File::basename( path[, suffix]) 返回 path 末尾的文件名。如果指定了 suffix,则它会从文件名末...原创 2019-01-03 11:32:06 · 592 阅读 · 0 评论 -
Ruby学习之文件的写入和读取
Ruby 提供了一整套 I/O 相关的方法,在内核(Kernel)模块中实现,所有的 I/O 方法派生自 IO 类,类 IO 提供了所有基础的方法,比如 read、 write、 gets、 puts、 readline、 getc 和 printf,我们接下来就来分别看下这些个函数。首先来看一下输出打印信息的函数。puts 语句指示程序显示存储在变量中的值,这将在每行末尾添加一个新行,来...原创 2019-01-03 11:08:59 · 8508 阅读 · 0 评论 -
Ruby学习之迭代器(iterator)的定义和使用
有一句话说得好啊,迭代(iterate)指的是重复做相同的事,所以迭代器(iterator)就是用来重复多次相同的事,很简单的就说明了这个迭代器的公用,Ruby中的迭代器是集合(存储一组数据成员的对象称为集合)支持的方法,并且在 Ruby 中,数组(Array)和哈希(Hash)可以称之为集合。迭代器返回集合的所有元素,一个接着一个,这次呢,我们主要来看两种迭代器,each 和 collect。...原创 2019-01-03 10:19:41 · 540 阅读 · 0 评论 -
Ruby学习之日期 & 时间(Date & Time)&范围(Range)的定义和使用
Time 类在 Ruby 中用于表示日期和时间,它是基于操作系统提供的系统日期和时间之上,只是无法表示 1970 年之前或者 2038 年之后的日期,接下来我们就来使用 Time 对象来获取各种日期和时间的组件,来看实例:#!/usr/bin/ruby -w# -*- coding: UTF-8 -*- time = Time.new #和time = Time.now等效 ...原创 2019-01-03 09:37:13 · 1783 阅读 · 0 评论 -
Ruby学习之模块哈希(Hash)的定义和使用
哈希(Hash)是类似 "key" => "value" 这样的键值对集合,类似于一个数组,只不过它的索引不局限于使用数字,它的索引(或者叫"键")几乎可以是任何对象,它虽然和数组类似,但却有一个很重要的区别:Hash 的元素没有特定的顺序。 如果顺序很重要的话就要使用数组了。与数组一样,有各种不同的方式来创建哈希,我们来分别看下:#通过 new 类方法创建一个空的哈希months ...原创 2019-01-02 16:19:03 · 1826 阅读 · 0 评论 -
Ruby学习之模块数组(Array)的定义和使用
Ruby 数组是任何对象的有序整数索引集合,其中的每个元素都与一个索引相关,并可通过索引进行获取,它的索引从 0 开始,这与 C 或 Java 中一样。一个负数的索相对于数组的末尾计数的,也就是说,索引为 -1 表示数组的最后一个元素,-2 表示数组中的倒数第二个元素,依此类推,它可存储诸如 String、 Integer、 Fixnum、 Hash、 Symbol 等对象,甚至可以是其他 Arr...原创 2019-01-02 16:12:28 · 628 阅读 · 0 评论 -
Ruby学习之模块字符串(String)的定义和使用
Ruby 中的 String 对象用于存储或操作一个或多个字节的序列,它分为单引号字符串(')和双引号字符串("),区别在于双引号字符串能够支持更多的转义字符。最简单的字符串是单引号字符串,即在单引号内存放字符串,如果我们需要在单引号字符串内使用单引号字符,那么需要在单引号字符串使用反斜杠(\),这样 Ruby 解释器就不会认为这个单引号字符是字符串的终止符号。反斜杠也能转义另一个反斜杠,这样第二...原创 2019-01-02 15:46:57 · 878 阅读 · 0 评论 -
Ruby学习之模块(Module)的定义和使用
Ruby中的模块(Module)是一种把方法、类和常量组合在一起的方式,它提供了一个命名空间和避免名字冲突,并且实现了 mixin 装置。它的命名空间,相当于一个沙盒,在里边我们的方法和常量不会与其他地方的方法常量冲突,它和类很相似,但是它却不能被实例化,也没有子类,它只能被另一个模块定义。语法很简单:module Identifier statement1 statemen...原创 2019-01-02 15:19:33 · 2216 阅读 · 1 评论 -
Ruby学习之方法和块的定义和使用
Ruby中的方法和其它编程语言中的函数类似,主要是用于捆绑一个或多个重复的语句到一个单元中,其命名应以小写字母开头,如果以大写字母开头的话,可能会被系统认为是常量,同时呢,方法应在调用之前定义,否则 Ruby 会产生未定义的方法调用异常,咱们来看下方法的定义:#普通定义def method_name expr..end#带参数def method_name (var1, v...原创 2019-01-02 15:07:08 · 537 阅读 · 0 评论 -
Ruby学习之循环语句及可用修饰符
什么是循环语句咱这里就不赘述了,直接看下Ruby中的循环语句以及可用的修饰符。先来看下while循环的语法格式:while conditional [do] codeend#或者while conditional [:] codeend当 conditional 为真时,执行 code。语法中 do 或 : 可以省略不写。但若要在一行内写出 while 式,则...原创 2019-01-02 14:13:38 · 258 阅读 · 0 评论 -
Ruby学习之条件判断语句&其中可用的修饰符
我们这次主要是来看下Ruby中比较常见的几种条件判断语句以及其中可用的修饰符,废话不多说,来看正题。首先是if else语句,语法很简单,如下:if conditional [then] code...[elsif conditional [then] code...]...[else code...]endif之后的表达式就代表条件,条件值...原创 2019-01-02 13:36:11 · 588 阅读 · 0 评论 -
Ruby学习之记录下运算符
Ruby有一套丰富的运算符,我们实际上可以把大多数运算符看作是方法的调用,像a + b 就可以看做 a.+(b),其中指向变量 a 的 + 方法被调用,b 作为方法调用的参数,对于每个运算符(+ - * / % ** & | ^ << >> && ||),Ruby都有一个相对应的缩写赋值运算符(+= -= 等等)。假设变量 a 的值为 10,变量...原创 2019-01-02 11:52:03 · 354 阅读 · 0 评论 -
Ruby学习之类中变量的定义和使用
上篇文章呢,我们简单看了下类和方法以及对象的定义和使用,并且简单的了解了类中的变量的几种类型,这次我们就来简单的看一下。Ruby变量的官方定义就是持有可被任何程序使用的任何数据的存储位置,它有五种类型:一般小写字母、下划线开头:变量(Variable)。 $开头:全局变量(Global variable)。 @开头:实例变量(Instance variable)。 @@开头:类变量(...原创 2019-01-02 11:20:07 · 1337 阅读 · 0 评论 -
Ruby学习之类和对象的简单理解
我们都知道,Ruby是一种面向对象的编程语言,而面向对象编程语言的特性,无非就是封装、继承、多态和抽象等,它的程序主体则主要涉及到类和对象,咱们这次呢,不谈别的,只是说说这个类和对象。咱们有过其它诸如PHP、Java语言的使用经验的兄嘚应该知道,类是对象的抽象,而对象则是类的具体化实现,你好比一个类,我们把它叫做车,里面定义了外观、车标、发动机信息等等,这就是个类,而对象呢,就是我们具体化的说...原创 2019-01-02 09:56:11 · 190 阅读 · 0 评论 -
Ruby学习之数据类型
Ruby支持的数据类型包括基本的Number、String、Ranges、Symbols,以及true、false和nil这几个特殊值,同时还有两种重要的数据结构,那就是Array和Hash,我们来分别看下。首先来看下整型,它分为两种,如果在31位以内(四字节),那为Fixnum实例,如果超过,即为Bignum实例,也就是说,整数范围从 -230 到 230-1,在这个范围内的整数是类 Fix...原创 2018-12-28 15:07:25 · 400 阅读 · 0 评论 -
Ruby学习之基础语法知识
#!/usr/bin/ruby -wputs "Hello, Ruby!";之前我们已经通过一个简单的脚本输出过一些内容,接下来我们就来看下Ruby 语法相关的基本概念。首先是Ruby代码中的空白字符,像空格和制表符,就一般会被忽略,除非它们出现在字符串中才会改观,不过有时候他们会用于解释模棱两可的语句,当我们启用-w选项时,类似这种解释就会产生警告。实例如下:a + b 被解释...原创 2018-12-28 14:45:29 · 261 阅读 · 0 评论 -
Ruby学习之命令行选项&环境变量
这个ruby文件一般呢都是通过命令行来运行的,语法格式如下:ruby [ options ] [.] [ programfile ] [ arguments ... ]解释器可以通过下列选项被调用,来控制解释器的环境和行为,来看下具体数据:选项 描述 -a 与 -n 或 -p 一起使用时,可以打开自动拆分模式(auto split mode)。请查看 -n 和 -p ...原创 2018-12-28 14:21:36 · 1122 阅读 · 0 评论 -
Ruby学习之语言特性&安装环境&中文输出&输出Hello World
Ruby呢,它是一款开源的面向对象程序设计的服务器脚本语言,它可以运行在不同的平台上,并且呢,它的特性和python、Perl比较相似,我们来具体看下:Ruby 是开源的,在 Web 上免费提供,但需要一个许可证。 Ruby 是一种通用的、解释的编程语言。 Ruby 是一种真正的面向对象编程语言。 Ruby 是一种类似于 Python 和 Perl 的服务器端脚本语言。 Ruby 可以...原创 2018-12-28 14:06:15 · 248 阅读 · 0 评论