首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >Swift:确定这个常量的类型

Swift:确定这个常量的类型
EN

Stack Overflow用户
提问于 2022-06-26 20:51:25
回答 2查看 51关注 0票数 1

这是什么类型的康斯特(瓦尔)?

代码语言:javascript
复制
let val = { (a: Int, b:Int)->Int in a + b }(1 , 2)

不是(Int,Int) -> Int吗?

EN

回答 2

Stack Overflow用户

回答已采纳

发布于 2022-06-26 20:56:29

它只是Int,因为它只需要最后的结果,所以在那里调用一个函数,该函数接受2个It并返回它们的添加结果,它将是3

为了确定将来变量的类型,只需在键盘上按住option键,并将其悬停在变量名上即可。

票数 4
EN

Stack Overflow用户

发布于 2022-06-26 21:26:22

这里已经有了一个很好的答案,但我想为记录提供更多的细节。

下面是一个闭包表达式类型的(Int, Int)->Int

代码语言:javascript
复制
{ (a: Int, b:Int)->Int in a + b }

您也可以定义一个等价的命名函数:

代码语言:javascript
复制
func f (_ a: Int, _ b:Int)->Int { a+b }

然后,您可以使用两个参数调用该函数以获得一个Int值:

代码语言:javascript
复制
let val = f(1,2) 

通过用闭包表达式替换函数名,您可以做同样的事情:

代码语言:javascript
复制
let val = { (a: Int, b:Int)->Int in a + b }(1 , 2)

您甚至可以将这两种实践结合起来,并逐步显示类型:

代码语言:javascript
复制
let l = { (a: Int, b:Int)->Int in a + b }    // name the closure using a variable
print (type(of: l))                          // (Int, Int)->Int
let val = l(1 , 2)                           // use the closure 
print (type(of: val))                        // Int
print (val)
票数 1
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/72765047

复制
相关文章

相似问题

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