`
simohayha
  • 浏览: 1407547 次
  • 性别: Icon_minigender_1
  • 来自: 火星
社区版块
存档分类
最新评论
文章列表
1 使用多个构造方法 在ruby中没有像c++或者ruby中的构造器,可是我们依然能够创建出类似的多个构造器: class ColoredRectangle def initialize(r, g, b, s1, s2) @r, @g, @b, @s1, @s2 = r, g, b, s1, s2 end def ColoredRectangle.white_rect(s1, s2) new(0xff, 0xff, 0xff, s1, s2) end def ColoredRectangle.gray_rect(s1, s2) ...
这边都只是个大概,具体的要自己去看文档了. 1 连接SQLite: require 'sqlite' db = SQLite::Database.new("library.db") db.execute("select title,author from books") do |row| p row end db.close 2连接mysql: require 'mysql' m = Mysql.new("localhost","name","passwo ...
经常我们需要以一种更透明的方式来存储和得到数据.Marshal模块提供了简单的对象持久化,PStore 库建立在这项技术之上。dbm 库使用像hash一样并永久的存贮在磁盘上. 1简单的Marshaling 经常我们需要创建一个对象,然后为了以后的使 ...
1 检测文件是否存在及其大小 FileTest的 exist?方法可以检测一个文件是否存在: flag = FileTest::exist?("LochNessMonster") flag = FileTest::exists?("UFO") # exists? is a synonym for exist? 如果我们想要知道文件是否有内容,可以使用File::Stat的zero? 方法: flag = File.new("somefile").stat.zero? 这个将会返回true,这是因为在ruby中0也是true ...
今天花了2各种头,看了一下programming erlang的前三章,由于自己对scheme和haskell都有一些了解,因此觉得语法方面,erlang和他们挺相似的. 顺便发下牢骚,emacs实在是用不习惯,可是vi的erlang插件实在是烂,郁闷.. 这边只是一个简要的描述. 1整数 erlang里面的整数和scheme里面的是一样的都是允许任意长度的(只要不超出机器字长的限制): 3> 123456789 * 987654321 * 112233445566778899 * 998877665544332211. 如果你想指定一个数字的进制,你可以这样做: 4> 1 ...
1 打开和关闭一个文件 类方法File.new 打开一个文件,并将它实例化为一个File对象,他的第一个参数是文件名. 可选的第二个参数叫做 mode string(这个也是从c得来的).他的意思是怎样打开一个文件(读,写或者其他的).默认是'r'(也就是读). file1 = File.new("one") # Open for reading file2 = File.new("two", "w") # Open for writing 另外一种new的形式是三个参数的,其中第二个参数是指定了这个文件的原始的 ...
Enumerable 模块是一个很重要的模块,ruby中的很多类都有mix这个模块,比如array,hash等等。因此如果你想要自己定义一个collection,则不要继承一个存在的collection,而是应该mix Enumerable 模块。 数组是最常用,最有代表性的mix Enumerable模 ...
还差半各种头2007就过去了,总结下这一年: sicp今年到底是没看完,还记得当时开始看的时候,信誓旦旦的一定要在今年看完,然后明年开始看算法导论,可是到了年末,sicp没看完,算法导论没开始看,倒是csapp看了4章了,python 就看了本python in nutshell,后来实在由于ruby的诱惑太大,投入了ruby的怀抱,学习rails的过程中,感觉自己的js,css水平是在太烂,明年要加强了.erlang看了一段时间,不过始终看不进去,现在对lisp的兴趣倒是非常大的说。今年自己后半年,基本上在家里就是用ubuntu,基本上已经习惯了linux,不过对ubuntu实在是郁闷,7. ...
1创建一个hash 就想创建一个数组一样,我们能够使用Hash的[]方法来创建一个hash: puts a1 = Hash.[]("flat",3,"curved",2) puts a2 = Hash.[]("flat"=>3,"curved"=>2) puts b1 = Hash["flat",3,"curved",2] puts b2 = Hash["flat"=>3,"curved"=>2] pu ...
原文在这里: http://programming.reddit.com/info/63tnv/comments/c02qx55 Latent typing是一种你不需要在源码中的明确的声明你的变量的类型的类型系统.而与之相反的是manifest typing,它需要你在源码中明确的声明你的变量的类型。 Static typing类 ...
nnd,bug超多,速度超慢..现在每次进去桌面之前,都要等几分钟。切换个桌面就直接挂掉,真是失望,而且软件更新的速度也很慢,erlang的新版本都出来多久了,还不更新。准备下次鼓捣鼓捣gentoo了...
1 创建和实例化一个数组 类方法[]能够创建一个数组,这里有3种方法使用[]来创建一个数组: a = Array.[](1,2,3,4) b = Array[1,2,3,4] c = [1,2,3,4] 这里还有一个方法叫做new也可以创建一个数组,它可以接受0,1或者2个参数,第一个参数是数组的大小,第二个参数是数组中每一个元素的默认值。 d = Array.new # Create an empty array e = Array.new(3) # [nil, nil, nil] f = Array.new(3, &qu ...
1   1个简单的数字区间我们能这样表示: digits = 0..9 scale1 = 0..10 scale2 = 0...10 其中..包括结束点,...不包括结束点,也就是说digits和scale2的表示范围是一样的. 在ruby中,不只是数值可以用作区间,任何ruby对象都可以用作区间。可是并不是所有的表示都有意义或者有用。 接下来让我们来看看怎么操作区间: 2 开区间和闭区间 就像上面说的,..是闭区间,...是开区间: r1 = 3..6 # closed r2 = 3...6 # open a1 = r1.to_a # [3,4,5,6 ...
1 symbols简介 在ruby中一个symbol就是一个Symbol类的实例,他的语法也就是简单的一个冒号后面跟着一个声明. 一个symbol就像一个字符串,可是它和字符串所不同的是每一个symbol都只有一个实例。我们举个例子: array = ["foo", "foo", "foo", :foo, :foo, :foo] 在这个例子中字符串"foo"在内存里面被存储为3个不同的对象,而:foo则是被存储为一个对象,只不过是多个引用而已。 在ruby1.6之前的版本,一个symbol不是一个first ...
1定积分的计算 我么可以使用Riemann sum来计算积分: def integrate(x0, x1, dx=(x1-x0)/1000.0) #也就是求一个函数在x0到x1区间的积分 x = x0 sum = 0 loop do y = yield(x) sum += dx * y x += dx break if x > x1 end sum end def f(x) x**2 end z = integrate(0.0,5.0) {|x| f(x) } puts z, " ...
Global site tag (gtag.js) - Google Analytics