아래 함수의 목적은 두 개의 별 사이에 인수 값을 삽입 한 문자열을 반환하는 것입니다.문자열을 처리하기 위해 "복사"를 사용하지 않을 때 정확히 무슨 일이 일어 났습니까?
star-name: func [name /local stars] [
stars: "**"
insert next stars name
stars
]
print star-name "test" ;*test*
print star-name "this" ;*thistest*, but what I really want is *this*
두 번째로 함수를 호출하면 첫 번째 호출의 인수가 계속 삽입 된 상태로 유지됩니다. 대답은 copy "**"
을 사용하는 것입니다. , 그것은 "**"
에 모든 시간을 stars
변수를 할당하지 않습니다 내 질문은 함수라고? 당신이 시리즈에 설정 단어를 사용하는 경우
나는 생각을 가지고 있다고 생각한다. Rebol에서 함수는 블록 일뿐입니다. 다른 언어의 함수와는 꽤 다릅니다. 고마워요 :) –
REBOL이 방식으로 작동하는 이유에 대한 통찰력 : [REBOL 퓨어 (Pure) 기능 언어 (http://www.rebol.com/article/0206.html) – rgchris