Brightscript函数的默认Return行为是什么?

时间:2019-11-21 19:04:54

标签: roku 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相同。但这是有效的,我不确定如何?

1 个答案:

答案 0 :(得分:2)

由于BrighScript支持动态类型化(例如JavaScript),因此函数的默认返回类型为“动态”。

来自docs

  

也可以声明函数的返回类型。如果参数   或返回类型未声明,它们被假定为“动态”