Ios 这种参数声明信号(swift)是什么?
我是一名初级程序员,正在读一本关于iOS编程的书Ios 这种参数声明信号(swift)是什么?,ios,swift,xcode,Ios,Swift,Xcode,我是一名初级程序员,正在读一本关于iOS编程的书 这是什么意思?它接受一个CGSize参数,然后返回一个CGFloat,然后返回一个UIImage?这样做的意义是什么?下面的声明看起来更具可读性: func makeRoundedRectangleMaker(_ sz:CGSize) -> ((CGFloat) -> UIImage?) { return nil } typealias CustomNameOfClosure = (CGFloat) -> (UIIm
这是什么意思?它接受一个CGSize参数,然后返回一个CGFloat,然后返回一个UIImage?这样做的意义是什么?下面的声明看起来更具可读性:
func makeRoundedRectangleMaker(_ sz:CGSize) -> ((CGFloat) -> UIImage?) {
return nil
}
typealias CustomNameOfClosure = (CGFloat) -> (UIImage?)
func makeRoundedRectangleMaker(_ sz:CGSize) -> CustomNameOfClouse {
return nil
}
此函数将CGSize
作为参数方法,并返回一个闭包,该闭包也可以是任何类型的函数。
在这里你可以阅读更多关于它的信息
此外,您还可以为闭包创建一个typealias
,因此函数可以如下所示:
func makeRoundedRectangleMaker(_ sz:CGSize) -> ((CGFloat) -> UIImage?) {
return nil
}
typealias CustomNameOfClosure = (CGFloat) -> (UIImage?)
func makeRoundedRectangleMaker(_ sz:CGSize) -> CustomNameOfClouse {
return nil
}
希望它能帮助您:)这里是您的函数Return(CGFloat)->UIImage 表示func makeRoundedRectangleMaker(sz:CGSize)返回函数,该函数具有CGFloat数据类型参数并返回UIImage数据类型值 例如
func makeRoundedRectangleMaker(_ sz:CGSize) -> ((CGFloat) -> UIImage?) {
return sampleFunc(sz)
}
func sampleFunc(_ input: CGSize) -> Int {
return UIImage
}
看一段代码,这个函数的实现应该是这样的
func makeRoundedRectangleMaker(_ sz:CGSize) -> (CGFloat) -> UIImage {
var tempClosure = {(float:CGFloat) -> UIImage in
UIGraphicsBeginImageContext(sz)
let context = UIGraphicsGetCurrentContext()
context?.setFillColor(UIColor(colorLiteralRed: 0, green: 0, blue: 0, alpha: Float(float)).cgColor)
context?.fill(CGRect(x: 0, y: 0, width: sz.width, height: sz.height))
let img = UIGraphicsGetImageFromCurrentImageContext()
UIGraphicsEndImageContext()
return img ?? UIImage()
}
return tempClosure
}
“(z:CGSize)”这是函数的参数,”(CGFloat)->UIImage“这是函数的返回,你可以认为“(CGFloat)->UIImage”是函数,也可以认为“(CGFloat)->UIImage”是闭包,闭包==函数在swift中这里makeRoundedTectangleMake是返回闭包(自包含的功能块)参见中的“函数类型作为返回类型”不必是闭包;它可以返回任何类型的函数。