首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >如何对元组数组进行字符串化?

问如何对元组数组进行字符串化?
EN

Stack Overflow用户
提问于 2020-05-19 13:01:31
回答 1查看 49关注 0票数 0

考虑一个简单的双精度元组数组:

代码语言:javascript
复制
let sst = [(1.0,2.0),(3.0,4.0)]

它怎么能被串行化呢?这是我的尝试:

代码语言:javascript
复制
let ssr = sst.map{ f in String(f) }.joined(separator:",")

结果如下:

代码语言:javascript
复制
error: repl.swift:32:33: error: type '(Double, Double)' cannot conform to 'LosslessStringConvertible'; only struct/enum/class types can conform to protocols
        let ssr = sst.map{ f in String(f) }.joined(separator:",")
                                ^

repl.swift:32:33: note: required by initializer 'init(_:)' where 'T' = '(Double, Double)'
        let ssr = sst.map{ f in String(f) }.joined(separator:",")

所需的输出为

代码语言:javascript
复制
["(1.0,2.0)","(3.0,4.0)"]
EN

回答 1

Stack Overflow用户

回答已采纳

发布于 2020-05-20 05:15:53

接受@MartinR的提示:

代码语言:javascript
复制
 "\(sst)"
$R2: String = "[(1.0, 2.0), (3.0, 4.0)]

这并不完全是我需要的,但它提供了一个关键提示,即String()只是比预期的更有限,但我们可以使用语言级别的字符串:

代码语言:javascript
复制
let sst = [(1.0,2.0),(3.0,4.0)] 
let sout = sst.map{("\($0.0)","\($0.1)")}
print(sout)

[("1.0", "2.0"), ("3.0", "4.0")]

现在,这仍然不是最终的期望输出。一些不幸的苦差事把我们带到了最终产品:

代码语言:javascript
复制
let sout = sst.map{"(" + "\($0.0)" + "," + "\($0.1)" + ")"}
sout

[0] = "(1.0,2.0)"
[1] = "(3.0,4.0)"

因此,这是大量的工作,以stringify的元组。我希望有一种更简洁和清晰的方法。

票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/61883590

复制
相关文章

相似问题

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