gpt4 book ai didi

Swift 相当于字符串文字接口(interface)吗? - `request(method: ' 帖子'|'put')`

转载 作者:行者123 更新时间:2023-11-30 11:45:30 24 4
gpt4 key购买 nike

在 TypeScript 中我可以做这样的事情 [docs] :

request(method: 'post'|'put')

但是在 Swift 中我写了一些糟糕的代码,比如:

// See RFC7231 and RFC5789 for more info
enum HttpMethods: String {
case GET = "GET"
case HEAD = "HEAD"
case POST = "POST"
case PUT = "PUT"
case DELETE = "DELETE"
case CONNECT = "CONNECT"
case OPTIONS = "OPTIONS"
case TRACE = "TRACE"
case PATCH = "PATCH"
}

如何在编译时限制 Swift 函数允许的输入?

最佳答案

您的 Swift 大小写已关闭。您的意思可能是:

enum HTTPMethod: String {
case get = "GET"
case head = "HEAD"
case post = "POST"
case put = "PUT"
case delete = "DELETE"
case connect = "CONNECT"
case options = "OPTIONS"
case trace = "TRACE"
case patch = "PATCH"
}

如果小写字符串常量没问题,就像您在 Typescript 中所做的那样,您可能会这样编写以获得相同的结果。字符串枚举自动成为它自己的值。

enum HTTPMethods: String {
case get, head, post, put, delete, connect, options, trace, patch
}

如果您想要小写常量名称,但想要大写字符串值,那么您需要使用第一个版本。

要使用它来限制参数,只需使用类型:

func request(method: HTTPMethod)

关于Swift 相当于字符串文字接口(interface)吗? - `request(method: ' 帖子'|'put')`,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/48877945/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com