Ruby 10 分钟无废话 Ruby 编程 (入门篇)

chenge · 2014年03月20日 · 最后由 chenge 回复于 2014年04月09日 · 7283 次阅读

不是废话的废话

抱歉,先废话几句话。如果没耐心的话,请直接看正文。

目标读者

包括两类:第一次编程的人,以及会编程但第一次接触 Ruby 的人。

计划写三篇:

入门篇(类和对象,块,模块) 中级篇,高级篇(内容待定,根据本文的反馈和我自己以后的想法定)

欢迎拍砖

入门篇

——关于运行环境

最简单的办法,不用安装,直接在网站就可以运行。 http://rubyfiddle.com/

不怕麻烦的话,也可以安装 ruby,不会的话请参考 wiki:http://ruby-china.org/wiki/install_ruby_guide

ruby 文件名

就可以运行了。

——1 类和对象


class Person
  def initialize(name)
     @name = name
  end

  def show_name
    puts @name
  end
end

zhao = Person.new 'zhao' 
qian = Person.new 'qian'

zhao.show_name
qian.show_name

简单解释一下,class 是定义类 Person,def 定义两个方法。new 是生成对象,会调用 initialize 这个方法。@name是实例变量的写法。最后两句是调用方法 show_name。

——2 块


3.times do
  puts 'hello world'
end

people = ['zhao', 'qian']
people.each do |x|
 puts x
end

块是 ruby 的特色。

以上就是两种块的写法,第一个是无参数,后一个带参数 x,[]是数组。块可以看成独立的函数,与块前面的方法协同工作,就像二人转。

——3 模块


module Show
  def show_msg
    puts 'hello world'
  end
  Pi = 3.14
end

class Person
  include Show
end

class Desk
  include Show
end

puts Show::Pi
Person.new.show_msg
Desk.new.show_msg

模块也是 Ruby 的特色。

主要有两个作用,一个是作为命名空间,避免名字冲突,比如例子中的 Pi。另一个是共享代码,例子中 Person 和 Desk 共享 Show 的代码。

——结语

以上是我认为 Ruby 最重要的三个概念,如果你都看懂了的话,恭喜你至少成为了伪程序员,当然还很不够,如果你还有兴趣的话,就去买本砖头书看吧。

(入门篇完,看看你花了几分钟)

完整教程

期待楼主的中高级篇。

include xx 这就是 traint 吧

期待讲解 block yield 使用。

类,块,模块,不错

我是伪程序员 QAQ

#2 楼 @yakczh traint 是什么意思?记得是某个语言的概念吧。

#3 楼 @LinuxGit 好的,我记下了。

#1 楼 @glz1992 好的,打算写一下单元测试。

谢谢各位捧场,本来担心过于简单,看来还是有需要的。

#3 楼 @LinuxGit

def play
    n=10
    while n>0
        result = yield n 
        puts result*2
        n -= 1
    end
end
play { |x| p x }

yield 其实不难,就是一个函数调用。

person = ['zhao', 'qian'] 这个变量名用 people 貌似更好,复数。

#8 楼 @mahone3297 谢谢,那就改过来吧。

你确定第一次编程的人能看懂?

ruby 应该算所有语言里入门最容易的

#10 楼 @weakish 我相信不懂的话,多看几遍也就懂了。不信你找个人试试看。

第一次编程的人对 “类”、” 块 “、” 模块 “几乎没有概念,就算看懂了也只是停留在非常浅薄的理解层面。

#12 楼 @chenge 可能程序员做久了都会忘了,其实第一次编程的人会问变量是什么?又为什么要给一个变量赋值?

#14 楼 @yuan 当然不能指望这个短文教会初次编程的人,只是有个感觉和印象而已,编程就像下围棋一样入门很简单,高手是很难的。

模组(module)其实也可以当做接口(类似其他语言中的 interface)来用吧。

第一次编程的人能看懂就怪了...

#17 楼 @blacktulip 有那么难么?

#16 楼 @saillee 是可以当个 interface 标签用吧。

#18 楼 @chenge 对于第一次编程的人会很难,因为他可能连控制循环都不了解,更不必说 OOP 了。

类、模块和块的确是初学 Ruby 非常重要的三个概念,但还是需要有过编程经历的同学才能比较愉快的接受。

赞一个,期待楼主的中级篇高级篇

#20 楼 @mijael 已经写了部分,网址我补充进去了。

需要 登录 后方可回复, 如果你还没有账号请 注册新账号