Ruby入坑指南

Ruby语言是由松本行弘(Matz)设计,是一门通用的、面向对象的、解释型语言。

1.2 Ruby?RUBY?ruby?

1.Ruby:用来表示编程的语言
2.ruby:是指一个计算机程序,特指Ruby的解释器
3.RUBY:准确来说没有这种写法,一般是简写,例如WTO.

1.3. 安装方式 方式1 brew brew install ruby 方式2 rvm rvm install 2.2.4

更多rvm可以参考:rvm入门篇-安装和使用

1.4 工具

1.irb:交互式Ruby控制台程序。

2.rvm: Ruby Version Manager

3.VSCode

4.gem:一套Ruby库和应用程序包管理实用工具

5.rake:Ruby的make工具,一套任务管理实用工具

6.rdoc和ri:Ruby文档工具

1.5 ruby解释器命令

执行ruby文件

ruby basic.rb

语法检查而不运行程序:

ruby -cw basic.rb

它会读取文件并指出语法是否有错。更多类似-cw的解释器开关参见文末:解释器的命令行开关。

2 Ruby语言基础 2.1 变量 局部变量

局部变量以小写字母或者下划线开头,包含字母、下划线或数字。Ruby不是使用的驼峰命名,而是使用下划线将多个单词拼接。例如:

✅first_name ❎firstName 实例变量

实例变量通常以一个单独的@开头,后面字符和局部变量命名规则一致。例如:

class Person def initialize(temp_name,temp_age) @name = temp_name end def printn return @name end end # 实例变量 p1 = Person.new("zhangsan",24) p p1.printn #输出结果为:zhangsan 类变量

类变量命名规则与实例变量一致,但是它以@@符号开头:

class Person @@person_number = 0 def initialize(temp_name,temp_age) @name = temp_name @@person_number = @@person_number + 1 end def print_person_number return @@person_number end end # 实例变量 p1 = Person.new("zhangsan",24) p p1.print_person_number 输出结果:1 全局变量

以$开头,它就是一个全局变量,例如:

$FIRST_NAME $population 2.2 常量

常量以大写字母开头,如果遇到命名多词组合常量,可以使用驼峰命名法,也可以使用下划线分割且所有字母大写。

A String FirstName FIRST_NAME 2.3 方法 方法名

Ruby中的方法名遵从与局部变量相同的规则和约定。例如:

def get_first_name return @first_name end 方法调用

方法调用使用.运算符。例如:

p1.get_name #方法调用 p1.name #属性调用 2.4 引用ruby文件

可以使用$:查看加载路径。
这里主要介绍三种引用方式:load、require、require_relative。

load

load命令总是会加载所请求的文件,不论这个文件是否已经加载过。假如一个文件在几次加载过程中发生改变,那么最新版本的文件将优先使用并覆盖之前加载的版本。尤其是在irb会话中,当在编辑器中修改一个文件时,想要立即测试修改的效果,使用load非常有用。

require

经常会使用的一个技术,用于请求Ruby扩展或库,不论是标准库还是三方库。
requrire就算调用多次也不会重新加载已经加载过的文件。Ruby会持续追踪已经被请求的那些文件而不会重复加载它们。
require不能辨识出当前的工作目录(.)。用户可以显式地指定它。例如:

require "./loadee.rb" or $: << "." #把当前目录添加到加载路径当中。 require "loadee.rb" require_relative

这个命令会搜索相对于所在文件的目录来加载功能。这个不用把当前目录添加到加载路径中。

2.5 数据结构

查看某个属性或者变量是什么类型,可以使用.class方法。

2.5.1 字符串

字符串插值:

name = "zhangsan" age = "20" person_desc = "my name is #{name},age is #{age}" puts person_desc

bang方法:

Ruby的方法可以以惊叹号(!)结尾,这样的方法称为bang方法。有惊叹号的方法被标记为危险的。因为他可能会改变原有数据的值。例如:

str = "Hello World" p str.upcase! p str #---------------------- p str.upcase p str

更多字符串方法参见:https://ruby-doc.org/core-2.2.0/String.html

2.5.2 集合

Set不是Ruby的核心类,它是一个标准库类,所以使用的时候需要require "set"。它的对象是唯一的。

构造一个集合:

require 'set' s = [1,2,3,4,5,6,7,8,9,124,45,6,4,1] set = Set.new(s) p set

集合没有字面构造器。

2.5.3 数组

数组的创建:

#中括号创建 ["zhangsan","lisi","wangwu"]

注意%W 和%w的区别:

name = "Tim" students = %W{zhangsan lisi wangwu #{name}} students = %w{zhangsan lisi wangwu #{name}}

%w:创建字符串数组的特殊方式

%W:如果想要对字符串进行解析,使用W

数组遍历:

[1,2,3,4,5,8].each {|item| puts item+"!"}

更多数组方法参见:https://docs.ruby-lang.org/en/2.0.0/Array.html

2.5.4 散列

散列在其他语言中有时被称为:字典或者Map。散列由键值组成。例如:

state_hash = {"January" => "Jan","February" => "Feb","March" => "Mar"} state_hash["April"] = "Apr" puts state_hash["April"] #Result is Apr puts state_hash.class #Result is Hash 2.5.5 符号

内容版权声明:除非注明,否则皆为本站原创文章。

转载注明出处:https://www.heiqu.com/wpdszy.html