Ruby FAQ
优质
小牛编辑
127浏览
2023-12-01
- 一般的问题
- 变量、常数、参数
- 调用带块方法(迭代器)
- 句法
- 方法
- 类、模块
- 内部库
- 扩展库
- 尚未列出的功能
- 日语字符的处理
- Ruby的处理系统
一般的问题
- 1.1 Ruby是什么?
- 1.2 为什么取名叫Ruby呢?
- 1.3 请介绍一下Ruby的诞生过程
- 1.4 哪里有Ruby的安装文件?
- 1.5 请问Ruby的主页在哪里?
- 1.6 请问有Ruby邮件列表吗?
- 1.7 怎么才能看到邮件列表中的老邮件?
- 1.8 rubyist和ruby hacker的区别是什么?
- 1.9 它的正确写法是"Ruby"还是"ruby"?
- 1.10 请介绍一些Ruby的参考书
- 1.11 我看了手册可还是不明白,该怎么办?
- 1.12 ruby的性格比较像羊?
- 1.13 遇到bug时怎么上报?
变量、常数、参数
- 2.1 将对象赋值给变量或常数时,会先拷贝该对象吗?
- 2.2 局部变量的作用域是如何划定的?
- 2.3 何时才能使用局部变量?
- 2.4 常数的作用域是如何划定的?
- 2.5 实参是怎么传递给形参的呢?
- 2.6 将实参赋值给形参之后,对实参本身有什么影响吗?
- 2.7 若向形参所指对象发送消息的话,可能出现什么结果?
- 2.8 参数前面的*是什么意思?
- 2.9 参数前面的&代表什么?
- 2.10 可以给形参指定默认值吗?
- 2.11 如何向块传递参数呢?
- 2.12 为什么变量和常数的值会自己发生变化?
- 2.13 常数不能被修改吗?
调用带块方法
- 3.1 什么是"带块的方法调用"?
- 3.2 怎么将块传递给带块方法?
- 3.3 如何在主调方法中使用块?
- 3.4 为什么Proc.new没有生成过程对象呢?
句法
- 4.1 像
:exit
这种带:
的标识符表示什么? - 4.2 如何取得与符号同名的变量的值?
- 4.3
loop
是控制结构吗? - 4.4
a +b
报错,这是怎么回事儿? - 4.5
s = "x"; puts s *10
报错,这是怎么回事儿? - 4.6 为什么
p {}
没有任何显示呢? - 4.7 明明有pos=()这样的setter方法,可为什么pos=1时却没有任何反应呢?
- 4.8
'\1'
和'\\1'
有什么不同? - 4.9 在
p true or true and false
中会显示true
,但在a=true if true or true and false
中却不会把true
赋值给a
。 - 4.10 为什么
p(nil || "")
什么事儿都没有,可p(nil or "")
却会报错呢?
方法
- 5.1 向对象发出消息之后,将按照什么顺序来搜索要执行的方法?
- 5.2
+
和-
是操作符吗? - 5.3 Ruby中有函数吗?
- 5.4可以在外部使用对象的实例变量吗?
- 5.5
private
和protected
有什么不同? - 5.6 能不能将实例变量变成public类型的变量?
- 5.7 怎样指定方法的可见性?
- 5.8 方法名可以用大写字母开头吗?
- 5.9 为什么使用
super
时会出现ArgumentError
? - 5.10 如何调用上2层的同名方法?
- 5.11 重定义内部函数时,如何调用原来的函数?
- 5.12 何谓破环性的方法?
- 5.13 那些情况下会产生副作用?
- 5.14 能让方法返回多个值吗?
类、模块
- 6.1 重定义类时,是否会覆盖原来的定义?
- 6.2 有类变量吗?
- 6.3 什么是类的实例变量?
- 6.4 什么是特殊方法?
- 6.5 什么是类方法?
- 6.6 什么是特殊类?
- 6.7 什么是模块函数?
- 6.8 类和模块有什么区别?
- 6.9 模块可以生成子类吗?
- 6.10 在类定义中定义类方法 和 在顶层中定义类方法 之间有什么不同?
- 6.11
load
和require
有什么不同? - 6.12
include
和extend
有什么不同? - 6.13
self
是什么? - 6.14
MatchData
中的begin
、end
分别返回什么? - 6.15 如何使用类名来获得类?
内部库
- 7.1
instance_methods(true)
返回什么? - 7.2 为什么
rand
总是生成相同的随机数? - 7.3 怎样从0到51中选出5个不重复的随机数呢?
- 7.4
Fixnum
、Symbol
、true
、nil
和false
这些立即值与引用有什么不同? - 7.5
nil
和false
有什么不同? - 7.6 为什么读入文件并修改之后, 原文件依然没有变化?
- 7.7 怎样覆盖同名文件?
- 7.8 写文件后拷贝该文件,但所得副本并不完整,请问原因何在?
- 7.9 在管道中将字符串传给less后, 为什么看不到结果?
- 7.10 无法引用的
File
对象将会何去何从? - 7.11 怎样手动关闭文件?
- 7.12 如何按照更新时间的新旧顺序来排列文件?
- 7.13 如何获取文件中单词的出现频度?
- 7.14 为什么条件表达式中的空字符串表示true呢?
- 7.15 如何按照字典顺序来排列英文字符串数组?
- 7.16
"abcd"[0]
会返回什么? - 7.17 怎么把tab变成space?
- 7.18 如何对反斜线进行转义操作?
- 7.19
sub
和sub!
的区别在哪里? - 7.20 \Z匹配什么?
- 7.21 范围对象中的
..
和...
有什么不同? - 7.22 有函数指针吗?
- 7.23 线程和进程fork有何异同?
- 7.24 如何使用Marshal?
- 7.25 Ruby有异常处理语句吗?
- 7.26 如何使用
trap
? - 7.27 如何统计文件的行数?
- 7.28 怎样把数组转化为哈希表?
- 7.29 将字符串变为Array时可以使用%w(...),那么将字符串变为Hash时能不能如法炮制呢?
- 7.30 为何无法捕捉NameError异常呢?
- 7.31 为什么有succ却没有prev呢
扩展库
- 8.1 如何使用交互式Ruby?
- 8.2 有调试器吗?
- 8.3 怎样在Ruby中使用以C写成的库?
- 8.4 有
Tcl/Tk
的接口吗? - 8.5 为什么我的Tk不管用?
- 8.6 有gtk+、xforms的接口吗?
- 8.7 进行日期计算时需要注意哪些问题?
尚未列出的功能
日语字符的处理
- 10.1 若包含汉字的脚本输出乱码或无法正常运行时,该如何处理?
- 10.2 选项-K和$KCODE有什么不同?
- 10.3 可以使用日语标识符吗?
- 10.4 如何从包含日语字符的字符串中依次抽出1个字符?
- 10.5 tr("あ","a")运作不正常,应如何处置?
- 10.6 如何对平假名进行排序?
- 10.7 如何用空白来替代SJIS中从84BF到889F之间的系统相关代码?
- 10.8 如何进行全角-半角字符的变换?
- 10.9 关于半角假名的问题
- 10.10 怎样从包含日语字符的字符串中抽出n字节的内容?
- 10.11 怎么让日语文本在第n个字处换行?
Ruby的处理系统
- 11.1 能不能编译Ruby脚本呢?
- 11.2 有没有Java VM版的Ruby?
- 11.3 除了original Ruby之外,就没有其他版本吗?
- 11.4 有没有Ruby用的indent?
- 11.5 有没有使用本地线程的Ruby?
- 11.6 GC实在是太慢了,怎么办才好?
- 11.7 有没有Mac版的Ruby?