看介绍很吸引我。 记下一词: 享受编程
ruby
没有环境在网上找了一个
http://codepad.org, 支持很多语言。
- 解释型语言
- 纯面向对象语言. 一切皆对象, 数字是 Fixnum
- 强类型语言。运行时检查类型。动态语言 (可以在运行过程中,变换类型)
- 面向接口编程,而不是面向实现。
- 动态语言 。 有pop,push 的方法的,就可以当做“栈”用。(言外之意 静态语言只有栈和子类可以做栈用? )
语言中的基本要素
1函数: (也是一种对象)
def print_hello
puts "hello ruby"
end
print_hello
puts print_hello
=== output
hello ruby
hello ruby
nil
数组。 [-2], [0..1]
[1,2,3]
散列
代码块
def call_block(&block)
block.call
end
def pass_block(&block)
call_block(&block)
end
pass_block {puts "xxxxxxx "}
类
class Tree
attr_accessor :children, :node_name
def initialize(name, children=[])
@children=children
@node_name=name
end
def visit_all(&block)
visit &block
children.each {|c| c.visit &block}
end
def visit(&block)
block.call self
end
end
ruby_tree = Tree.new("ruby",
[Tree.new("first"), Tree.new("second")])
puts "visiting a node"
ruby_tree.visit {|node| puts node.node_name}
puts "visiting a tree"
ruby_tree.visit_all {|node| puts node.node_name}
======
visiting a node
ruby
visiting a tree
ruby
first
second
课后练习
s = "hello world"
s.gsub(/world/, "ruby")
puts s
说实话, 这本说看下来, 不容易。 我会告诉你, 7种语言一种多没有学过吗。 最近在看 haskell。