Каково поведение возврата по умолчанию для функции brightscript?

Итак, я просмотрел старую кодовую базу brightscript и нашел кучу functions, которые возвращают вещи, но не указывают, что они возвращают as.

Например:

function logMessage(prefix as string, message as string)
  concatenatedMessage = prefix + message

  if m.top.logLevel <= m.top.verbosity
    print concatenatedMessage
  end if
  return concatenatedMessage
end function

Так что здесь происходит? Очевидно, что строка отправляется обратно, поэтому действует ли она точно так же, как если бы она была объявлена ​​function logMessage(prefix as string, message as string) as string? или as object?

У меня сложилось (ложное?) Впечатление, что если вы перестанете использовать as _____ в своих функциях, они будут as void по умолчанию, так же, как sub. Но это работает, я просто не знаю, как?


person MMAdams    schedule 21.11.2019    source источник


Ответы (1)


Поскольку BrighScript поддерживает динамическую типизацию (например, JavaScript), тип возврата функции по умолчанию - «Динамический».

Из документы:

Также может быть объявлен возвращаемый тип функции. Если параметр или возвращаемый тип не объявлены, они считаются «динамическими».

person Alejandro Cotilla    schedule 22.11.2019