在此代碼段,fields-types
到底由to-camel-case
功能改性,相對於作爲一個局部變量來父功能被傳遞:爲什麼局部變量變量不受尊重?
fields-types: ["First Name" "string" "Last Name" "string" "Age" "int"]
to-camel-case: function [name] [
name/1: lowercase name/1
replace/all name space ""
]
fill-template-body: func [
field-labels-types [block!] /local vars fields-names-types
] [
vars: [member-name member-type]
field-names-types: copy []
foreach [field-label field-type] field-labels-types [
append field-names-types to-camel-case field-label
append field-names-types field-type
]
]
fill-template-body fields-types
執行給出:
>> fill-template-body fields-types
== ["firstName" "string" "lastName" "string" "age" "int"]
>> fields-types
== ["firstName" "string" "lastName" "string" "age" "int"]
>>
儘管我會希望該字段類型保持不變:
fields-types: ["First Name" "string" "Last Name" "string" "Age" "int"]
當然,我可以嘗試通過修改to-camel-case
使用名稱的副本,但這不是我認爲我應該做的事情。
有沒有像Scala中的var
和val
關鍵字?
感謝會重讀了好幾遍。仍然有一種機制將是有用的給予選擇,可能類似val關鍵字http://reboltutorial.com/blog/scala-val-keyword/?將不得不考慮它。 – 2010-07-31 20:16:05
在我看來,你想「保護值,不發一言這不會發生REBOL(?): FOO:條:‘foobar的’ 保護」富 大寫欄 探頭富 保護一個字只會阻止您將其分配給其他值。除非您使用副本,否則值本身仍然可以通過其他參考進行操作。 條:複製FOO:「foobar的」 保護「富 大寫欄 探頭富 – rgchris 2010-07-31 20:33:06
廢話,換行不保留意見... – rgchris 2010-07-31 20:33:23