ruby0 49 array c原始碼閱讀

2021-10-04 03:36:53 字數 658 閱讀 3083

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...