Block、Proc 与 Lambda的区别: https://www.jianshu.com/p/8a3b3e22e013
alias 与 alias_method 的区别: http://lazybios.com/2015/11/alias-vs-aliasmethod/
yield self 的用法, 写个例子: https://www.jianshu.com/p/d13b2b26b4d7
Scope实现原理: https://narutohinata.github.io/2017/03/05/ActiveRecord%E9%87%8C%E7%9A%84Scope%E5%AE%9E%E7%8E%B0%E5%8E%9F%E7%90%86/
require、load、autoload、require_dependency的区别及其使用场景:
require: 引用文件,但是只能引用一次。举个例子,irb中引用b文件,b文件常量Age为35,第一次执行Age为35,然后我们修改b文件常量Age为36,再次引用执行还是35,而load就会是36。
load: 和require类似,但是支持多次引用,如果引用文件的内容变动频繁就用load,这里举个例子,有两个文件,分别是a和b,a引用b,b引用a,如果是使用require执行的时候就不会报错,如果是load执行的时候就会报错。此外a文件有常量Age,引用的b文件也有的话,会报警告信息,这个时候load(b.rb, true)就可以避免常量被污染。
autoload: 只有引用文件的类或者module被使用时才会加载这个文件
require_dependency: 开发环境下如果文件有改动,会自动加载该文件
Object、 Module、 Class、Kernel 解释及其关系:
object是所有类的基类,module是模块除了不能new一个实例外基本上和class一样,他们的关系是 class > module > object
Kernel 是一个module,里面包含了很多方法,而Object包含了这个模块,所以所有的Object的子类都可以使用Kernel的方法,例如nil? puts等。
ruby单例模式如何实现:
require "singleton"
class User
include Singleton
end
User.instance
singleton method(单件方法)、singleton class(单件类) 解释一下:
1) singleton method是指只属于某个对象的方法,其他对象不可以使用,例如先创建一个对象,然后为该对象追加一个方法。
class User
end
user = User.new
class << user
def username
"zhangsan"
end
end
或者
def user.username
def username
"zhangsan"
end
end
puts user.singleton_methods
这里的username方法就是只属于user这个实例的方法
注意: 类方法定义方式如下两种,看起来是不是和singleton method一样,其实类方法的本质就是类的singleton method
class << self
def username
end
end
def User.username
end
2)singleton class(单件类): singleton method不属于class,而是属于singleton class中也就是 如下:
class << obj
def ..
end
end
块解释以及和函数的区别:
块是闭包,通过大括号或者do..end实现,本身也起到类似函数的作用,相对于函数有如下优势:
1)容错设计,如hash={}; hash.fetch('name'){"wo"}
2) DSL语言设计
如何调用私有方法:
send可以调用私有方法
分享到:
相关推荐
比较齐全的面试的ruby面试题,经过本人精心收集,此类题可以帮助你快速找到好的工作。
1、Ruby编程语言是什么? Ruby 是一种动态的、反射性的、通用的、开源的编程语言,专注于简单性和生产力。Ruby 具有 Perl、small talk、Eiffel、Ada 和 Lisp 的混合特性。Ruby 旨在创建一种与命令式语言的功能取得...
流利说面试题使用任意ruby框架实现一个p2p交易系统
java初级开发者面试笔试题ruby_interview 最初发表于 2008 年 6 月 在招聘 Ruby on Rails 程序员时,一开始要知道面试中要问的正确问题对我来说是一个真正的挑战。 在 30 分钟或更短的时间内,如果不查看候选人之前...
1. 什么是Ruby?简要介绍Ruby的特点和主要用途。 2. Ruby中的变量声明和赋值规则是什么?请说明Ruby变量声明和赋值的语法。 3. Ruby中常用的数据类型有哪些?请列举几种常见的Ruby数据类型。 4. Ruby中如何进行条件...
NULL 博文链接:https://hlee.iteye.com/blog/1280697
java初级开发者面试笔试题Ruby工作 在招聘 Ruby on Rails 程序员时,一开始要知道面试中要问的正确问题对我来说是一个真正的挑战。 在 30 分钟或更短的时间内,如果不查看候选人之前编写的代码,很难全面了解候选人...
程序员面试刷题的书哪个好Ruby的基础知识 这个存储库是我在 Ruby 中遇到并适应使用的计算机科学中所有累积学术主题的集合。 在弄清楚如何写出你的第一个“Fizzbuzz”之后,你最终走了多远,这很有趣。 面试挑战 破解...
概括 面试花园是一个准备IT技术面试的社交...后端:Ruby on Rails 前端:JavaScript、jQuery/AJAX、HTML5 和 CSS3 特征 创建了一个列出所有问题的问题索引页面。 创建了一个问题显示页面,其中列出了问题和所有相关的
###Introduction Ruby 对书中问题的解决方案。 包括源代码和 RSpec 测试 ###如何运行测试您可以通过在源代码的根目录中简单地键入rake来运行测试,在此之前,您应该运行bundle install来安装所需的 gem,有关详细...
Ruby / Rails职位的面试准备 在Pramp上进行模拟面试-使用ruby 采访位 面试实践 技术面试手册 很棒的面试问题 RubyConf 2015-Chris Mar进行的Ruby技术访谈艺术 如何开始ROR 文章:我如何训练学习铁轨 文章:我最终...
根据公司内部题和培训机构老师整理的这些年来高频的自动化测试相关面试题。 涵盖了API接口自动化、接口测试、web自动化、UI、APP自动化等、分层测试相关的内容。 appium 是一个自动化测试开源工具,支持 iOS 平台和 ...
**各大知名公司面试真题:**对于求职者在这上面训练更具有针对性,目前国内一些公司面试时直接从在这上面出题。 **大中小企业都在使用:**常常会直接或者间接使用力扣(LeetCode) 的题目资源,依然慢慢成为考核...
2. Ruby-Watir ....................................................................................................... 50 3. QTP: ..........................................................................
程序员面试助手 项目链接: 西瓜名片 项目链接: 项目介绍 react-ruby-china 项目是一个利用 react, react-dom, react-redux, react-router, redux, es6, redux-thunk 和 ruby-china api 实现的 RubyChina 社区克隆...
Ruby 来回答。 您可以从我们的 RailsConf 2012 闪电演讲中查看关于 job_interview 的幻灯片。 用法 require 'job_interview' @answer = JobInterview :: Answer . new # FizzBuzz @answer . fizz_buzz ( 5 ) => [ 1 ...
技术面试问题列表的精选列表。 请阅读 或 如果您想贡献。 目录 编程语言/框架/平台 安卓 AngularJS 角 主干JS C++ C C# 。网 Clojure CSS Cucumber 姜戈 码头工人 EmberJS 二郎 高朗 图Ql HTML 离子 IOS Java ...
技术面试问题列表的精选列表。 目录 编程语言/框架/平台 安卓 . AngularJS 角 主干JS C++ C C♯ 。网 Clojure CSS Cucumber 姜戈 EmberJS 二郎 高朗 HTML 离子 IOS Java JavaScript jQuery 前端构建工具 KnockoutJS ...
技术面试问题列表的精选列表。 如果你想贡献,请阅读 或 。 查看我的或 . 目录 编程语言/框架/平台 安卓 . AngularJS 主干JS C++ C C♯ 。网 Clojure CSS 姜戈 EmberJS 二郎 高朗 HTML 离子 IOS Java JavaScript ...
面试该项目用于评估开发人员对Ruby&Rails的熟练程度。有什么帮助? 希望Interviees能够克隆此项目并进入其交互式控制台以进行两种类型的测试: 阅读一段代码,然后通过评估代码来命名返回的值。 阅读规范,并编写一...