我是一名经验丰富的程序员,正在学习Ruby(并且非常喜欢它)。 我正在使用SQLite3设置数据库。 为了更好地学习Ruby,我正在跟踪SQLite3。 我不明白的是,Database和Statement类的#new方法的代码在哪里。 实际上,我期望看到的是#initialize方法而不是#new方法。
SQLite3::Database.new(file, options = {})
SQLite3::Statement.new(db, sql)
上述两个语句来自文档。 但是在我的代码中,当我尝试跟踪这个时……
$db = SQLite3::Database.new"MyDBfile"
它只是跳过了。
然后稍后当我尝试追踪时
#$db.execute
我进入了Database.rb文件中的#execute方法,但接着它调用了#prepare方法,我尝试进入该方法
stmt = SQLite3::Statement.new( self, sql )
但是,我还是没有运气。它只是跳过了它。
我已经查看了源代码,进行了搜索等操作,但是我无法找到被调用的初始化方法。它们在哪里?
谢谢您考虑这个问题。
rb_define_method
调用将各个部分粘合在一起。这些 C 文件编译成库,并根据需要动态加载。只要稍微搜索一下,你应该就能找到一个 C 扩展教程。评论很好,我们这里的大多数人都很友好(或者至少假装是 :) 。 - mu is too short