You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

使用RegexBuilder创建的正则表达式,变量/参数应声明为何类型?

函数参数类型声明方案

在Swift中,通过RegexBuilder构建的正则表达式,本质类型是Regex<Output>,其中Output对应正则捕获组组成的元组类型。针对你的需求,有两种常用的参数声明方式:

1. 泛型通用型(推荐)

如果你的函数需要兼容任意结构的RegexBuilder正则,可以用泛型参数适配不同的输出类型:

func doSomethingWithPattern<Output>(pattern: Regex<Output>) {
    // 实现代码示例
    if let match = "test@example.com".firstMatch(of: pattern) {
        print(match.output)
    }
}

这种方式灵活性最高,不管正则有多少个捕获组、捕获类型是什么,都能正常接收。

2. 特定输出类型

如果你的函数只需要处理固定捕获结构的正则(比如示例中emailPattern的输出是(Substring, Substring),对应两个捕获组),可以直接指定具体的输出类型:

func doSomethingWithPattern(pattern: Regex<(Substring, Substring)>) {
    // 实现代码...
}

这种方式类型更明确,能在编译期就限制传入的正则必须符合预期的捕获结构。


内容的提问来源于stack exchange,提问作者DanubePM

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.06.26 05:04:49