跳轉到內容

Rebol 程式設計/陣列

來自華夏公益教科書
ARRAY size /initial value 

建立並初始化給定大小的序列。

ARRAY 是一個函式值。

  • 大小 -- 每個維度的大小或大小塊 (型別: 整數塊)
  • /initial -- 為所有元素指定一個初始值
    • -- 初始值 (如果為函式,則每次呼叫時都會呼叫) (型別: 任何)

(特殊屬性)

[編輯 | 編輯原始碼]
  • 捕獲

原始碼

[編輯 | 編輯原始碼]
array: func [
    "Makes and initializes a series of a given size." 
    [catch] 
    size [integer! block!] "Size or block of sizes for each dimension" 
    /initial "Specify an initial value for all elements" 
    value {Initial value (will be called each time if a function)} 
    /local block rest
][
    if block? size [
        if tail? rest: next size [rest: none] 
        unless integer? set/any 'size pick size 1 [
            throw-error 'script 'expect-arg reduce ['array 'size type? get/any 'size]
        ]
    ] 
    block: make block! size 
    case [
        block? rest [
            loop size [block: insert/only block array/initial rest :value]
        ] 
        series? :value [
            loop size [block: insert/only block copy/deep value]
        ] 
        any-function? :value [
            loop size [block: insert/only block value]
        ] 
        insert/dup block value size
    ] 
    head block
]
華夏公益教科書