跳转至

活动调用

在活动调用期间,可以传递机器人上下文,因为它被声明为目标函数中的一个参数。

可以传递的参数有:

还可以添加自定义类型进行传递。

为此,添加一个实现 Autowiring<T> 的类,并用 @Injectable 注解标记它。

在实现 Autowiring 接口后,T 将可以在目标函数中传递,并通过接口中描述的方法获取。

@Injectable
object UserResolver : Autowiring<UserRecord> {
    override suspend fun get(update: ProcessedUpdate, bot: TelegramBot): UserRecord? {
        return userRepository.getUser ByTgId(update.user.id)
    }
}

在函数中声明的其他参数将在解析的参数中被搜索

此外,在传递时,解析的参数可以被转换为某些类型,以下是它们的列表:

  • String
  • Integer
  • Long
  • Short
  • Float
  • Double

此外,请注意,如果参数被声明但缺失(例如在解析的参数中或 Update 中缺少 User),或者声明的类型与函数中接收到的参数不匹配,null 将被传递,因此请小心。

总结一下,下面是函数参数通常是如何形成的示例:

调用过程图

另请参见