首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >为什么我不能初始化这套

为什么我不能初始化这套
EN

Stack Overflow用户
提问于 2018-12-12 08:08:45
回答 2查看 69关注 0票数 2
代码语言:javascript
复制
var startset=Set<String>("asdasd","sadad")

错误:

调用中缺少参数标签'arrayLiteral:‘

我受此启发:

代码语言:javascript
复制
var ok=String("sdsf")

印花sdsf

EN

回答 2

Stack Overflow用户

回答已采纳

发布于 2018-12-12 08:19:15

您可以在String中这样做,因为恰好String有一个初始化项:

代码语言:javascript
复制
public init<S>(_ other: S) where S : LosslessStringConvertible, S : Sequence, S.Element == Character

String适用于S的所有约束,因此可以将它传递给这个初始化器,您可以以这种方式创建字符串。

Set是一个完全不同的类,它没有任何可以传递2个Strings的初始化器,所以不能通过传递2个字符串来创建一个集合。

如果要创建一个以2个字符串作为元素的集合,可以使用数组文字:

代码语言:javascript
复制
let set: Set<String> = ["asdasd","sadad"]

或者,如果您想显式调用一个初始化器,

代码语言:javascript
复制
let set = Set<String>(["asdasd","sadad"])
票数 3
EN

Stack Overflow用户

发布于 2018-12-12 08:18:09

要初始化Set,您需要序列类型的值:例如,数组。

为此,请执行以下操作:

代码语言:javascript
复制
var startset=Set<String>(["asdasd","sadad"])
票数 1
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/53738608

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档