小编Lyn*_*ynn的帖子

保存时热重新加载

我目前正在OSX上使用终端和vim作为Flutter的开发环境.事情进展顺利,但是当我保存任何飞镖文件时应用程序不会重新加载.有没有办法触发这种行为?目前我必须去终端并点击"r"查看我的更改.

macos vim flutter hot-reload

3
推荐指数
1
解决办法
1526
查看次数

通过 Siri 使用参数启动应用程序,无需捐赠/快捷方式

假设我正在制作一个应用程序,用户可以在其中安装一些小的交互式体验(冥想)。

\n\n

为了方便起见,我希望我的用户能够通过说:\xe2\x80\x9cHey Siri,在冥想中启动海滩日落。\xe2\x80\x9d

\n\n

由于某些原因,用户通过语音执行此操作是有意义的,而无需先在 iOS 应用程序中与Beach Sunset进行交互。(例如,他们可能已经通过我的服务的网络应用程序\xe2\x80\x9cown\xe2\x80\x9d它。)

\n\n

也就是说:我想要像\xe2\x80\x9cHey Siri,在 Meditations\xe2\x80\x9d 中启动 Beach Sunset 这样的语音动作,即使用户没有先为其设置快捷方式,或者我 \xe2\x80 \x9c为其提供\xe2\x80\x9d 行动。

\n\n

那可能吗?(我觉得许多默认应用程序都暴露了类似的行为,但也许它们很特别。)如果没有,我能做的下一个最好的事情是什么?

\n\n

Siri 是否需要“捐赠”才能了解我的应用程序的语音操作,或者它们只是一种暗示和预测用户行为的机制?

\n\n

Siri 是否需要“快捷方式”来了解我的应用程序的语音操作,或者它们只是一种用户短语自定义机制?

\n\n
\n

我从未在 iOS 应用程序中添加过 Siri 支持,但似乎 \xe2\x80\x9cparameters\xe2\x80\x9d 在 iOS 13 中变得更加强大。这个答案表明类似的事情在 iOS 中是不可能的12,但我认为它也在做一些不同的事情(我想启动应用程序;他们想要 \xe2\x80\x9c 创建一个对象 \xe2\x80\x9d 大概只是使用 Intent UI。我不知道这是否重要。)

\n
\n\n

我做了什么

\n\n

我已使用单个参数 ( )在“开始”类别 ( ) 中定义了自定义意图。LaunchMeditationmeditationName

\n\n

我考虑了标准媒体 …

parameters ios siri sirishortcuts ios13

3
推荐指数
1
解决办法
2222
查看次数

Haskell:递归复制函数

我刚刚开始使用Haskell.我正在尝试创建一个模仿replicateHaskell中的标准函数但使用递归的函数.例如,

Prelude> replicate 3 "Ha!"
["Ha!","Ha!","Ha!"]
Run Code Online (Sandbox Code Playgroud)

它应该是类型Int -> a -> [a].到目前为止,我有:

myReplicate :: Int -> a -> [a]
myReplicate x y = y : myReplicate (x-1) y
myReplicate 0 y = [ ]
Run Code Online (Sandbox Code Playgroud)

但是,我的函数总是生成无限列表:

Prelude> myReplicate 3 "Ha!"
["Ha!","Ha!","Ha!","Ha!","Ha!","Ha!","Ha!",...
Run Code Online (Sandbox Code Playgroud)

recursion haskell replicate

2
推荐指数
2
解决办法
2933
查看次数

将枚举值映射到类型

问题

假设我有一些这样的代码:

// Events we might receive:
enum EventType { PlaySong, SeekTo, StopSong };

// Callbacks we would handle them with:
type PlaySongCallback = (name: string) => void;
type SeekToCallback = (seconds: number) => void;
type StopSongCallback = () => void;
Run Code Online (Sandbox Code Playgroud)

在我给出的 API 中,我可以注册这样的回调

declare function registerCallback(t: EventType, f: (...args: any[]) => void);
Run Code Online (Sandbox Code Playgroud)

但我想摆脱它any[]并确保我不能注册错误类型的回调函数。

一个办法?

我意识到我可以这样做:

type CallbackFor<T extends EventType> =
    T extends EventType.PlaySong
        ? PlaySongCallback
        : T extends EventType.SeekTo
            ? SeekToCallback
            : T extends EventType.StopSong
                ? StopSongCallback …
Run Code Online (Sandbox Code Playgroud)

enums types dependent-type typescript conditional-types

2
推荐指数
1
解决办法
644
查看次数