假设我有一个名为Tool的类:
class Tool
def initialize( name, weight )
@name = name
@weight = weight
end
attr_reader :name, :weight
attr_writer :name, :weight
def to_s
name + " " + weight
end
end
Run Code Online (Sandbox Code Playgroud)
但Tool如果我愿意,这可以是一个人:
hammer = Tool.new( "Hammer", 14.5 )
pp = Tool.new( "first", "last" )
Run Code Online (Sandbox Code Playgroud)
它很灵活,因为我可以创建一种类型并用于多种用途.但是,如果用户不小心弄错了,肯定会导致错误的数据类型,我们如何跟踪问题呢?
这个想法有哪些优点和缺点?
Ruby根本没有松散的类型.恰恰相反,它的输入非常强烈.但它也是动态类型的(与静态类型相反,例如C++和Java).你应该对差异做一些阅读.PHP是松散类型语言的一个例子.
回答你的问题,如果没有采用测试驱动开发,动态类型的语言(如Ruby和Python)很难以任何复杂性编写.也就是说,首先尝试编写测试以解释期望并定义类和API,以便人们只需使用常识就可以知道如何使用它们.如果您真的担心客户端将无效类型传递给您的方法,那么如果类型不正确,您始终可以键入检查并抛出异常.但是,这通常不是在系统范围内完成的.
| 归档时间: |
|
| 查看次数: |
1207 次 |
| 最近记录: |