다음과 같이 나는 테이블에 문자열을 삽입하고 가정합니다루아에서는 사용자 정의 함수없이 N 번째 결과를 쉽게 선택할 수 있습니까?
table.insert(tbl, mystring)
을하고 mystring
이의 모든 항목을 대체하여 생성되는 "A", "B", input
에서와 :
mystring = string.gsub(input, "a", "b")
명백한을 방법은 결합 할 수있는 문이 작동하지 않습니다이 하나에, 반환이 개 결과 gsub
이유는
table.insert(tbl, string.gsub(input, "a", "b")) -- error!
-- (second result of gsub is passed into table.insert)
여러 개의 반환 값을 지원하기 위해 지불 한 가격을 가정합니다. 질문은 첫 번째 반환 값을 선택하는 표준 내장 메서드가 있습니까? 내가 select
을 찾았을 때 정확히 그랬다고 생각했지만, 슬프게도 실제로는 을 모두 선택했습니다. 결과가 N 이후이므로이 시나리오에서는 도움이되지 않습니다.
select
같이
function select1(n, ...)
return arg[n]
end
table.insert(tbl, select1(1, string.gsub(input, "a", "b")))
을하지만 난이 일을 내장 방법을 기대할 수 있기 때문에 이것이 제대로 보이지 않습니다.
그래서 기본 제공 구성이 누락 되었습니까? 그렇지 않다면, 루아 개발자는 정확한 변수를 추출하거나 함수 select1
을 작성하기 위해 별도의 변수를 사용하는 경향이 있습니까?
고마워요! 나는 결국 _second_ 결과 만 원한 같은 상황에 처하게 될 것입니다. 그러면 어떤 옵션을 사용할 수 있습니까? –
@romkyns : 답변 할 내 게시물이 업데이트되었습니다. 'select1' 함수가 더 읽기 쉽지만. – interjay
나는 이것을 위해 더미를 사용하고 싶습니다. 즉,'_, _, _, fourthVal, _ = giveMeFive()'그 방법이 더 읽기 쉽습니다. – deorst