[ Swift ] 请问为什么 Swift Playground 打印结果会自动加上一对半角圆括号?

2022-11-27 11:12:34 +08:00
 RobertLyu

请问怎么样能够把每次循环结束后自动加上的圆括号关掉?

1460 次点击
所在节点    Swift
9 条回复
kanel
2022-11-27 11:54:06 +08:00
因為你的 function 都是沒有返回值,所以當 while 的 print 和最後一行的 print 打印的都為空,應該是這樣才產生括號
momocraft
2022-11-27 12:49:15 +08:00
countingStars 返回()

printPyramid 也返回()
muxinqi
2022-11-27 13:20:55 +08:00
print 输出的是 printPyramid 方法的返回值

而 printPyramid 返回值类型没有写,也就是返回 Void ,查看苹果官方文档可以发现:Void 实际上等价于 空元组 也就是 ()

https://developer.apple.com/documentation/swift/void
RobertLyu
2022-11-27 14:05:02 +08:00
@momocraft 但奇怪的是如果我在函数声明要生成“String”结果,Playground 却报错了。

![截屏 2022-11-27 14.02.45.png]( https://s2.loli.net/2022/11/27/l5Q17kAb8ceV42p.png)
RobertLyu
2022-11-27 14:06:37 +08:00
@muxinqi 是的,感谢您在 Apple 支持文档中找到这个说明。

但是我在 Playground 如果声明“String”,反而会报错了。

Missing return in global function expected to return 'String'
RobertLyu
2022-11-27 14:09:37 +08:00
@momocraft
@muxinqi
刚刚试验了一下,如果在 Swift Playground 中添加“return ""”返回空值后半角圆括号就被替换了。非常感谢两位的解答!
GuuJiang
2022-11-27 15:07:48 +08:00
@RobertLyu 你这是治标不治本,根本问题是要问问自己,为什么非要在调用函数时写个 print
ershierdu
2022-11-27 15:13:40 +08:00
我觉得要么是

void print_xxx(){}

要么是

string xxx(){}
然后 print(xxx())

否则很奇怪
pocarisweat
2022-11-27 15:18:55 +08:00
当你没有指明函数返回值类型的时候,函数返回值类型为 Void ,而 Void 实际上就是空元组 () 的别名,显然所有 Void 类型都只有一种值 (),所以 print 出来的结果也是 ()

这是一个专为移动设备优化的页面(即为了让你能够在 Google 搜索结果里秒开这个页面),如果你希望参与 V2EX 社区的讨论,你可以继续到 V2EX 上打开本讨论主题的完整版本。

https://www.v2ex.com/t/898227

V2EX 是创意工作者们的社区,是一个分享自己正在做的有趣事物、交流想法,可以遇见新朋友甚至新机会的地方。

V2EX is a community of developers, designers and creative people.

© 2021 V2EX