static value
fary_plus(x, y)
struct rarray *x, *y;
return (value)z;
}這個函式比較有意思。我看作者的意思是
a=[1,2,3],b=[4,5]
a+b===[1,2,3,4,5]
a+10===[1,2,3,10]
可惜我的最新的ruby中除錯時,a+10報錯了。如果能除錯就好了。
//a=[1,2,3],a*3=[1,2,3,1,2,3,1,2,3]
static value
fary_times(ary, times)
struct rarray *ary;
value times;
return (value)ary2;
}這個函式也有意思,如
a=[1,2,3],a*3=[1,2,3,1,2,3,1,2,3]
作者的寫法,就是一段段的複製。作者使用mem*函式很熟練,我看到mem函式,還是在《程式設計實踐》中看人第一次使用mem函式。
總之,這個array.c還是很容易看的。沒有很複雜的演算法,寫得通俗易懂。
本來,我想,自己功力還不夠,也許先看小一些的程式,但覺得ruby很好玩。一直捨棄不下,於是接著讀。
如果能編譯出來,就太好了。
ruby0 49原始碼分析 array c
ruby0.49原始碼分析 array.c 今天讀ruby0.49,感覺讀 的速度越來越快了。大腦好象開竅了。先讀makefile,根據基編譯順序,從下向上讀。在array.c的上面定義了若干函式,在末尾把函式進行註冊。檔案末尾 有init string 函式 用rb define method 函...
ruby049原始碼分析 array c
fary entry ary,offset 是取陣列ary offset 的值,作者需要判斷下標是否在區間 0,ary.length 1 區間內,如果offset是負數,就把offset加上長度,這樣實現 a 1 指向陣列最後乙個元素的功能。因為 1 a.length 資料最後乙個元素的下標。如果下...
ruby 0 49原始碼分析
今天想想,讀讀ruby0.49的原始碼。用c寫東西,那是太慢了。真要幹活,還是用perl或者ruby.現在時間充足,就相看看ruby0.49。收到了王亞剛寫的gcc原始碼分析的書,他的版本太高,感覺還是讀最古老的版本較划算。量太大了,這何年何月才能看完呢。wget tar zxvf ruby 0.4...