文章图片
下面列出了一些常见的Ruby或Ruby On Rails面试问题和答案。
1)什么是Ruby编程语言?
Ruby是一种动态, 反思, 通用的开源编程语言, 专注于简单性和生产力。 Ruby具有Perl, 闲聊, Eiffel, Ada和Lisp的混合功能。 Ruby旨在创建一种新语言, 该语言与命令式语言的功能保持平衡。
欲了解更多信息, 请点击此处
2)谁是Ruby的开发人员?
Ruby是由1990年中期在日本的Yukihiro” martz” Matsumoto设计和开发的。
欲了解更多信息, 请点击此处
3)为什么Ruby被称为灵活性语言?
Ruby被称为灵活性语言, 因为它可以帮助其作者更改编程元素。可以删除或重新定义语言的某些特定部分。 Ruby不限制用户。例如, 要添加两个数字, Ruby允许使用+号或单词” plus” 。可以使用Ruby的内置类Numeric完成此更改。
4)列出Ruby的一些功能?
Ruby具有许多功能。下面列出了其中一些。
- 面向对象
- 灵活
- 动态打字和鸭子打字
- 垃圾收集器
- 关键字参数
5)解释Ruby和Python之间的一些区别。
相似之处:
- 高级语言
- 支持多种平台
- 使用名为irb的交互式提示
- 服务器端脚本语言
- Ruby是完全面向对象的, 而Python不是。
- Ruby支持EclipseIDE, 而Python支持多个IDE。
- Ruby使用Mixins, 而Python不使用。
- Ruby支持块, proc和lambda, 而Python不支持。
6)编写命令以在系统中安装Ruby版本。
Ruby-v
欲了解更多信息, 请点击此处
7)Ruby中的类库是什么?
Ruby类库包含各种领域, 例如线程编程, 数据类型和各种领域。以下是具有相关类库的域的列表:
- 文字处理
- CGI程式设计
- 网络编程
- GUI编程
- XML编程
运算符是用于执行不同操作的符号。
- 一元运算符
- 空中操作员
- 按位运算符
- 逻辑运算符
- 三元运算符
9)Ruby编程语言中的RubyGems是什么?
RubyGems提供了用于分发Ruby程序和库的标准格式。它充当Ruby编程语言的程序包管理器。
RubyGems现在是Ruby 1.9版标准库的一部分。
10)什么是Ruby变量。
Ruby变量保存可在程序以后使用的数据。每个变量都充当内存, 并具有不同的名称。
Ruby中有四种类型的变量:
- 局部变量
- 类变量
- 实例变量
- 全局变量
11)Ruby中的nil和false有什么区别?
nil | false |
---|---|
假可以是一个值。 | |
如果是谓词, 则方法返回true或false。 | |
false是布尔数据类型。 | |
false是falseclass的对象。 |
Ruby数据类型表示数据类型, 例如文本, 字符串, 数字等。
Ruby中有不同的数据类型:
- 号码
- 弦乐
- 符号
- 散列
- 数组
- 布尔值
13)Ruby中load和require的用途是什么?
在Ruby中, 将load和require都用于将可用代码加载到当前代码中。如果每次更改时或每次有人访问URL时都需要加载代码, 建议使用” 加载” 。
如果是自动加载, 建议使用” require” 。
14)解释Ruby if-else语句。
Ruby if-else语句用于测试条件。 Ruby中有多种类型的语句。
- 如果声明
- if-else语句
- if-else-if(elsif)语句
- 三元陈述
15)解释Ruby中的case语句。
在Ruby中, 我们使用” case” 代替” switch” , 并使用” when” 代替” case” 。 case语句将一个条件与多个条件匹配, 就像其他语言中的switch语句一样。
欲了解更多信息, 请点击此处
16)解释Ruby中的循环。
【推荐!Ruby面试题精华汇总合集】Ruby for循环遍历特定范围的数字。因此, 如果程序具有固定的迭代次数, 则使用for循环。
Ruby for循环将对表达式中的每个元素执行一次。
欲了解更多信息, 请点击此处
17)在Ruby中解释while循环。
Ruby while循环用于多次迭代程序。如果迭代次数不固定
对于程序, 使用while循环。
欲了解更多信息, 请点击此处
18)解释Ruby中的while循环。
Ruby的while循环会多次迭代程序的一部分。在这种情况下, 循环将至少执行一次, 因为在最后写入条件时要执行do。
欲了解更多信息, 请点击此处
19)解释直到在Ruby中循环。
Ruby直到循环运行, 直到给定条件的值为真为止。当条件变为真时, 它将退出循环。它与while循环相反。
欲了解更多信息, 请点击此处
20)在Ruby中解释break语句。
Ruby break语句用于终止循环。它主要用于在while循环中打印值直到条件为真的while循环。
欲了解更多信息, 请点击此处
21)在Ruby中解释下一条语句。
Ruby next语句用于跳过循环的下一个迭代。一旦执行下一条语句, 将不再执行任何迭代。
欲了解更多信息, 请点击此处
22)在Ruby中解释重做语句。
Ruby redo语句用于重复循环的当前迭代。执行重做语句时不评估循环条件。
欲了解更多信息, 请点击此处
23)在Ruby中解释重试语句。
Ruby retry语句用于从头开始重复整个循环迭代。
欲了解更多信息, 请点击此处
24)你将如何在Ruby中发表评论。
Ruby注释是程序中的不可执行行。他们不参与程序的执行。
单行注释语法:
#This is single line comment.
多行注释语法:
=begin
This
is
multi line
comment
=end
欲了解更多信息, 请点击此处
25)解释Ruby对象。
Object是所有Ruby对象的默认根。 Ruby对象继承自BasicObject, 该对象允许创建备用对象层次结构。
欲了解更多信息, 请点击此处
26)如何创建Ruby对象?
Ruby中的对象是通过调用类的新方法创建的。这是一种独特的方法, 并且在Ruby库中预定义。
语法
objectName=className.new
欲了解更多信息, 请点击此处
27)解释Ruby类。
每个Ruby类都是Ruby类的实例。 Ruby中的类是一流的对象。它始终以关键字类开头, 后跟类名。
语法
class ClassName
codes...
end
欲了解更多信息, 请点击此处
28)定义Ruby方法。
Ruby方法阻止我们一次又一次地在程序中编写相同的代码。 Ruby方法类似于其他语言中的函数。
欲了解更多信息, 请点击此处
29)如何使用Ruby方法。
要使用Ruby方法, 我们需要先对其进行定义。它用def和end关键字定义。
方法名称应始终以小写字母开头。
语法
def methodName
code...
end
欲了解更多信息, 请点击此处
30)什么是Ruby块。
Ruby代码块在其他编程语言中称为闭包。它由一组代码组成, 这些代码始终用大括号括起来或写在do … end之间。
欲了解更多信息, 请点击此处
31)用Ruby编写块的方式有几种。
块以两种方式写入:
- 做和结束之间的多行
- 括号之间的内联{}
欲了解更多信息, 请点击此处
语法
block_name{
statement1
statement2
..........
}
欲了解更多信息, 请点击此处
32)什么是Ruby中的yield语句。
yield语句用于调用带有值的方法中的块。
欲了解更多信息, 请点击此处
33)在Ruby中解释” &” 参数(&block)。
&block是一种将对块的引用(而不是局部变量)传递给方法的方法。
在此, &后面的正楷字只是参考的名称, 可以使用任何其他名称代替。
欲了解更多信息, 请点击此处
34)解释Ruby模块。
Ruby模块是方法和常量的集合。模块方法可以是实例方法或模块方法。它们与类相似, 因为它们包含方法, 类定义, 常量和其他模块的集合。它们的定义类似于类。不能使用模块创建对象或子类。没有继承的模块层次结构。
模块基本上有两个作用:
- 它们充当命名空间。它们可以防止名称冲突。
- 它们允许mixin工具在类之间共享功能。
module ModuleName
statement1
statement2
...........
end
模块名称应以大写字母开头。
欲了解更多信息, 请点击此处
35)在Ruby中解释模块mixins。
Ruby不支持多重继承。模块消除了在Ruby中使用mixin进行多重继承的需要。
一个模块没有实例, 因为它不是类。但是, 模块可以包含在类中。
当你在类中包含模块时, 该类将有权访问该模块的方法。
欲了解更多信息, 请点击此处
36)解释Ruby字符串。
Ruby字符串对象保存并操纵一个字节的任意序列, 通常表示字符。它们是使用String :: new或作为文字创建的。
欲了解更多信息, 请点击此处
37)如何在应用程序中访问Ruby字符串元素。
你可以使用方括号[]来访问Ruby字符串元素的不同部分。在方括号内写下索引或字符串。
欲了解更多信息, 请点击此处
38)如何在Ruby中编写多行字符串。
用Ruby语言编写多行字符串非常简单。我们将展示三种打印多行字符串的方法。
- 字符串可以用双引号引起来。
- 使用%字符, 字符串包含在/字符中。
- 在Heredoc语法中, 我们使用< < , 而字符串包含在单词STRING中。
39)Ruby中全局变量$的用途是什么?
全局变量在Ruby中声明, 你可以在应用程序中的任何位置访问它, 因为它在应用程序中具有完整的作用域。全局变量在带$前缀的Ruby中使用。
40)在Ruby中串联字符串是什么。你可以通过多种方式创建串联字符串。
Ruby串联字符串意味着从多个字符串中创建一个字符串。你可以通过将多个字符串连接起来以形成单个字符串。
有四种方法可以将Ruby字符串连接为单个字符串:
- 在字符串之间使用加号。
- 在字符串之间使用单个空格。
- 在字符串之间使用< < 登录。
- 在字符串之间使用concat方法。
41)在Ruby中什么是冻结字符串。
在大多数编程语言中, 字符串是不可变的。这意味着无法修改现有字符串, 只能从中创建新字符串。
在Ruby中, 默认情况下字符串不是不可变的。为了使它们不可变, 可以使用冻结方法。
欲了解更多信息, 请点击此处
42)你可以用几种方式比较Ruby字符串?
Ruby字符串可以与三个运算符进行比较:
- 使用==运算符:返回true或false
- 用eql?运算子:传回true或false
- 使用casecmp方法:如果匹配, 则返回0;如果不匹配, 则返回1
43)Ruby中的类库是什么?
Ruby类库包含各种领域, 例如线程编程, 数据类型和各种领域。以下是具有相关类库的域的列表:
- 文字处理
- CGI程式设计
- 网络编程
- GUI编程
- XML编程
Ruby数组是对象的有序集合。它们可以容纳整数, 数字, 哈希, 字符串, 符号或任何其他数组之类的对象。
它的索引从0开始。负索引从数组的结尾开始从-1开始。例如, -1表示数组的最后一个元素, 0表示数组的第一个元素。
Ruby数组可以通过多种方式创建。
- 使用文字构造函数[]
- 使用新的类方法
45)如何访问Ruby数组元素?有多少种方法用于访问Ruby元素。
可以使用#[]方法访问Ruby数组元素。你可以传递一个或多个参数, 甚至可以传递一系列参数。
语法
#[] method
用于访问Ruby元素的方法:
- 在方法
- 切片法
- 提取方法
- 第一种和最后一种方法
- 采取方法
- 掉落法
46)在Ruby中可以以几种方式在数组中添加项目?
Ruby数组元素可以以不同的方式添加。
- 推或< <
- 不变
- 插入
47)在Ruby中可以从数组中删除项目的方式有几种?
Ruby数组元素可以通过不同的方式删除。
- 流行音乐
- 转移
- 删除
- 优衣库
48)解释Ruby哈希值。
Ruby哈希是唯一键及其值的集合。它们类似于数组, 但是数组使用整数作为索引, 而哈希使用任何对象类型。它们也称为关联数组, 字典或地图。
如果使用不存在的键访问哈希, 则该方法将返回nil。
欲了解更多信息, 请点击此处
49)如何在Ruby中创建新的时间实例?
可以使用:: new创建新的Time实例。这将使用你当前系统的时间。还可以传递部分时间, 例如年, 月, 日, 小时, 分钟等。
创建新的时间实例时, 你至少需要经过一年。如果只经过了一年, 则时间将默认为该年的1月1日, 当前系统时区为00:00:00。
欲了解更多信息, 请点击此处
50)解释Ruby范围。定义范围的方法是什么?
Ruby范围代表一组带有开头和结尾的值。可以使用s..e和s … e文字或:: new构造它们。
其中包含..的范围从头到尾都包括在内。其中包含… 的范围专门运行最终值。
Ruby有多种定义范围的方法。
- 范围作为序列
- 条件范围
- 间隔范围
51)什么是Ruby迭代器?
迭代器是面向对象语言中使用的概念。迭代意味着像循环一样多次执行一件事。
循环方法是最简单的迭代器。它们一个接一个地返回集合中的所有元素。数组和哈希值属于集合类别。
欲了解更多信息, 请点击此处
52)Ruby中有多少个迭代器?
Ruby中有以下迭代器:
- 每个迭代器
- 时间迭代器
- 上下迭代器
- 分步迭代器
- each_line迭代器
53)在Ruby中为IO控制台命名不同的方法?
IO控制台提供了与控制台进行交互的不同方法。 IO类提供以下基本方法:
- IO ::控制台
- IO#raw#raw!
- 我煮#
- #我熟!
- IO#残培
54)如何在Ruby中打开文件?
可以使用不同的读取, 写入或两者方法来创建Ruby文件。
有两种方法可以在Ruby中打开文件。
- File.new方法:使用此方法可以创建一个新文件, 以进行读取, 写入或两者同时进行。
- File.open方法:使用此方法可以创建一个新的文件对象。该文件对象已分配给文件。
语法
f = File.new("fileName.rb")
要么,
File.open("fileName.rb", "mode") do |f|
欲了解更多信息, 请点击此处
55)如何在Ruby中读取文件?
有三种不同的读取文件的方法。
要返回单行, 请使用以下语法。
语法
f.gets
code...
要在当前位置之后返回整个文件, 请使用以下语法。
语法
f.rea
code...
要将文件作为行数组返回, 请使用以下语法。
语法
f.readlines
[code...]
56)解释Ruby中的类库。
Ruby类库包含各种领域, 例如线程编程, 数据类型和各种领域。它具有不断发展的其他库。以下是具有相关类库的域。
- 文本处理:File, String, Regexp, 用于快速, 干净的文本处理。
- CGI编程:有用于CGI编程支持的支持类库, 例如数据库接口, eRuby, Apache的mod_ruby, 文本处理类。
- 网络编程:Ruby提供了各种设计良好的套接字, 用于网络编程。
- GUI编程:Ruby / Tk和Ruby / Gtk是GUI编程的类
- XML编程:UTF-8文本处理正则表达式引擎使XML编程在ruby中非常方便。
sysread方法还用于读取文件的内容。借助此方法, 你可以以任何方式打开文件。
欲了解更多信息, 请点击此处
58)你将如何在Ruby中重命名和删除文件?
Ruby文件使用重命名方法重命名, 并使用删除方法删除。
要重命名文件, 请使用以下语法。
语法
File.rename("olderName.txt", "newName.txt")
要删除文件, 请使用以下语法。
语法
File.delete("filename.txt")
欲了解更多信息, 请点击此处
59)如何检查Ruby中是否存在目录?
要检查目录是否存在?使用方法。
语法
puts Dir.exists? "dirName"
欲了解更多信息, 请点击此处
60)解释Ruby异常。
Ruby异常是一个对象, Exception类的实例或该类的后代。当出现问题时, Ruby程序会抛出异常行为。默认情况下, Ruby程序在引发异常时终止。
欲了解更多信息, 请点击此处
61)什么是内置的Ruby类异常。
内置的异常子类如下:
- NoMemoryError
- ScriptError
- 安全错误
- SignalException
62)在Ruby中如何处理异常?
为了处理异常, 引发异常的代码包含在begin-end块内。使用救援子句, 我们可以声明我们要处理的异常的类型。
欲了解更多信息, 请点击此处
63)解释在Ruby中使用retry语句?
通常, 在救援子句中, 捕获异常, 并在begin块之后恢复代码。使用retry语句, 可以在捕获异常后从头开始恢复救援块代码。
语法
begin
code....
rescue
# capture exceptions
retry # program will run from the begin block
end
欲了解更多信息, 请点击此处
64)用Ruby解释凸起语句?
引发语句用于引发异常。
语法
raise
要么,
raise "Error Message"
要么,
raise ExceptionType, "Error Message"
要么,
raise ExceptionType, "Error Message" condition
欲了解更多信息, 请点击此处
65)解释在Ruby中使用sure语句?
在代码末尾有一个保证子句的保证。无论是否引发异常, sure块始终运行。它被放置在最后一个救援子句之后, 并且将在块终止时始终执行。
在任何情况下, 无论发生异常, 抢救异常还是未捕获的异常终止代码, sure块都将运行。
语法
begin
code..
#..raise exception
rescue
#.. exception is rescued
ensure
#.. This code will always execute.
end
欲了解更多信息, 请点击此处
工作/人力资源面试问题 |
jQuery面试问题 |
Java OOP面试问题 |
JSP面试问题 |
休眠面试问题 |
SQL面试题 |
Android面试题 |
MySQL面试问题 |
如果没有谓词, 则返回nil。
nil不是布尔数据类型。
nil是nilclass的对象。
面试技巧
JavaScript面试问题
Java基础面试问题
Servlet面试问题
春季面试问题
PL / SQL面试问题
Oracle面试问题
SQL Server面试问题
推荐阅读
- 精品推荐!Selenium面试题合集详解
- Mybaits 源码解析 ----- 面试源码系列(Mapper接口底层原理(为什么Mapper不用写实现类就能访问到数据库()))
- 淘宝APP商品搜索API提取
- [LeetCode] 435. Non-overlapping Intervals
- Flutter-AppBar
- Android Studio 配置快速生成模板代码
- Android双卡打电话和发短信
- android xml移动到其他module 引发的 Unresolved reference:xxxxx
- 手机爬虫--appium