2010-07-03 3 views
1

루아 코드 조각을 문자열로 바꾸어서 적절한 루아 청크로 실행할 수 있다는 것을 발견했습니다. 이와 같은 코드를 작성하는 것은 그리 어렵지 않지만 시간이 많이 걸리고 사소한 오류가 발생하여 개발 시간과 인내심을 잃을 수 있습니다.코드를 문자열로 변환하는 도구입니까?

실행 가능한 코드를 가져 와서 적절한 문자열로 변환 할 수있는 도구/필터가 있습니까? 내가 바로 나 자신을 설명하고 있지 않다 경우

은 (기본 영어가 아닌 스피커, 내 사과는!), 나는

"MyFunction(\"String!\")" 

그것은에서 사소한에

MyFunction("String!") 

과 같은 코드를 켤 수있는 도구를 찾으려면 예를 들어, 여러 줄의 코드를 말할 때 꽤 지루합니다.

Linux를 주요 OS로 사용하고 있습니다. 일부 필터링 도구를 사용할 수 있습니까? 루아 기반의 솔루션은 오락을 위해서도 재미있을 것입니다.

답변

6

긴 문자열로 코드를 감쌀 수 있습니다. 이에 관계없이 당신이 그것을 달성하기 위해 사용하는 방법의 간단해야한다 :

myString = [==[ 
    for i = 1, 10 do 
     print("Hello #"..i) 
    end 
]==] 

당신이 오래가 일치로 열고 닫는 괄호 (없음 포함하지 않음) 원하는만큼 = 표시를 할 수 있습니다. 이렇게하면 닫힌 소스 코드에는 나타나지 않는 "끝 주석"기호가 있어야합니다.

+1

워를 할 수 있습니다, 이것은이 가능한 것에 대해 정말 유용 읽어 본 적이있다. 이것은 문자열로 변환하는 것보다 훨씬 낫습니다. 그래서 나는이 답변에 충실 할 것입니다. 대단히 감사합니다! – MissHalberd

0

이 작품이 마음에 드시나요?

sed 's/"/\\"/g;' join_string | tr '\n' '\a' | sed 's/\a/\\n/g' | more 
2

string.format("%q",s)을 사용하십시오.

1

당신은 Lua 컴파일러를 통해서만 결과를 읽을 수 있지만, 이렇게 할 수 있습니다.

string.dump(function() print("Hello world") end) 

실행 이러한 코드이

loadstring(string.dump(function() print("Hello world") end))() 
관련 문제