Skip to content

daGaiGuanYu/ruby-koans-zhu

Folders and files

NameName
Last commit message
Last commit date

Latest commit

 

History

39 Commits
 
 
 
 
 
 

Repository files navigation

ruby-koans 注

ruby koans 是一套“练习题”(ruby 官方推荐
如果你刚学了 ruby 的语法,想加深记忆,那 ruby koans 很合适

但是,做练习题,没有参考答案,就很不舒服
此仓库,就是一些参考答案,以及个人的笔记

共勉

如果有地方不正确、不恰当,欢迎指正、感谢教训

开始

本仓库分三大部分:

第一步,准备环境

只需要安装一个 ruby 就够了
如果你已经学习了 ruby 的基本语法,那应该是有 ruby 的环境的
否则,你应该先学习一下 ruby 的基本语法

第二步,下载练习题

你可以 clone 一下本仓库

git clone https://github.com/daGaiGuanYu/ruby-koans-zhu.git

里面有“exercise”文件夹,就是未经任何改动的原始的从官网下载的源码

或者,如果你对你的网络有信心,也可以从官网下载,点这个链接

第三步,开始做题
  • 打开命令行工具
  • 切换到“exercise”所在的文件夹
  • 输入 rake,回车,你将看到:
PS D:\workspace\ruby-koans-zhu\exercise> rake
C:/Ruby27-x64/bin/ruby.exe path_to_enlightenment.rb
AboutAsserts#test_assert_truth has damaged your karma.

The Master says:
  You have not yet reached enlightenment.

The answers you seek...
  Failed assertion.

Please meditate on the following code:
  D:/workspace/ruby-koans-zhu/exercise/about_asserts.rb:10:in `test_assert_truth'

mountains are merely mountains
your path thus far [X_________________________________________________] 0/281 (0%)

最后一行,是你的做题进度
0/281 表示总共有 281 道题,你现在已完成 0 道,也就是 0%

倒数第三行:

D:/workspace/ruby-koans-zhu/exercise/about_asserts.rb:10:in `test_assert_truth'

是你当前要做的题:exercise文件夹下的about_assert.rb文件的第10

祝,早日心明眼亮。

如果你也像我刚接触 ruby koans 时一样:到这里,依然一头雾水,那请务必再多花 5 到 10 分钟,把本篇读完

做题须知

比如第一部分的第一题
def test_assert_truth
  assert false
end

第一部分,其实是跟你说如何做题
你要做的,是 koans 让你做的那一行
也就是输入 rake 之后,命令行里提示的“某文件夹下的某文件的第某行”
其他的,跟练习内容,无关
如果你感兴趣,可以做完整个练习后,再细细品味

第一题,只需要把第十行的 false 改为 true 就行了
所有的练习题,都是给 assert 一个 true
现在输入 rake,你会看到:

PS D:\workspace\ruby-koans-zhu\exercise> rake
C:/Ruby27-x64/bin/ruby.exe path_to_enlightenment.rb
AboutAsserts#test_assert_truth has expanded your awareness.
AboutAsserts#test_assert_with_message has damaged your karma.

The Master says:
  You have not yet reached enlightenment.
  You are progressing. Excellent. 1 completed.

The answers you seek...
  This should be true -- Please fix this

Please meditate on the following code:
  D:/workspace/ruby-koans-zhu/exercise/about_asserts.rb:16:in `test_assert_with_message'

learn the rules so you know how to break them properly
your path thus far [.X________________________________________________] 1/281 (0%)

可以看到,你现在要做的题,已经是exercise/about_asserts.rb里的第 16 行了
0/281 也变成了 1/281(不到 1%,四舍五入为 0%)

第二题,依然是把 false 改为 true
后面的"This should be true -- Please fix this"只不过是未完成题时的错误提示

第三题

def test_assert_equality
  expected_value = __
  actual_value = 1   1

  assert expected_value == actual_value
end

依然有个 assert 语句,后面是一个表达式,我们的任务就是让这个表达式变成 true
只需要把expected_value = __中的双下划线改成 2 就行了
后面几乎所有的题目,都是用适当的内容替换双下划线

第四题 和 第五题,出现了 assert_equal 语句
表示后面的参数,是“相等的”,我想你应该知道怎么做了

做完第四、五题之后,再输入 rake,你会看到:

PS D:\workspace\ruby-koans-zhu\exercise> rake
C:/Ruby27-x64/bin/ruby.exe path_to_enlightenment.rb
AboutAsserts#test_assert_equality has expanded your awareness.
AboutAsserts#test_a_better_way_of_asserting_equality has expanded your awareness.
AboutAsserts#test_fill_in_values has expanded your awareness.
AboutNil#test_nil_is_an_object has damaged your karma.

The Master says:
  You have not yet reached enlightenment.
  You are progressing. Excellent. 5 completed.

The answers you seek...
  Unlike NULL in other languages

Please meditate on the following code:
  D:/workspace/ruby-koans-zhu/exercise/about_nil.rb:5:in `test_nil_is_an_object'

sleep is the best meditation
your path thus far [.X________________________________________________] 5/281 (1%)

倒数第一行:你已经做了 5 道题了,进度是 1%
倒数第三行:你现在要做的是exercise/about_nil.rb的第 5 行

参考答案

本仓库的note文件夹下,是个人的答案和笔记
有的题目,有些不解、启发,都会记录下来(在中文注释里),如有不对的地方,欢迎指正

About

No description, website, or topics provided.

Resources

Stars

Watchers

Forks

Releases

No releases published

Packages

No packages published

Languages