2016-04-25 4 views
-5

Может ли кто-нибудь помочь мне?Lua Текст и функция печати в той же строке

function sum(_g, _h) 
    local num = (_g * _h)/2 
    return num 
end 

print("The result is")(sum(10, 6)) 

Почему это не работает?

+0

'sum10, 6' или' sum (10, 6) '? – Kamiccolo

+0

сумма (10, 6) верна – Sharpy

+0

Вы должны отправить сообщение об ошибке, которую вы получаете. (Так как вы явно получаете его.) Тогда вы должны попытаться на самом деле прочитать код, который вы написали, так как 'lua' видит его. Подсказка: 'print (« Результат есть »)' - это полный вызов функции. Что он возвращает? –

ответ

7

Функция print принимает одну или несколько строк в качестве аргументов. Когда строки вводятся различные аргументы, он выводит их разделены табуляцией

The result is 20 

Чтобы получить этот вывод, просто представьте, что вы храните возвращение из sum в переменной

res = sum(10, 6) 

И затем вызвать print введите строку и результат так же, как вы вводите 10 и 6 в функции sum:

print("The result is ", res) 

Это также traduces к

print("The result is ", sum(10, 6)) 

Без необходимости сохранения результата в любом месте.

В любом случае, если вы целевой выход, который выглядит как

The result is 20 

необходимо ввести только одну строку в качестве аргумента для print

.. 

является оператором, который позволяет объединить две строки в одной строке , так что "hello".." world" приводит к "hello world".

Теперь просто объединить две строки "The result is " и 20 (который на самом деле это число, но оно получает автоматически преобразуется в строку) с оператором .., как в

res = sum(10, 6) 
mystring = "The result is " 
print(mystring..res) 

Или, короче

print("The result is "..sum(10, 6)) 
+0

Спасибо! Хорошо работает – Sharpy

+0

Нет проблем! Просто спросите, нужна ли вам дополнительная помощь. – user6245072

Смежные вопросы