ObjC/Swift 一些不喜欢的 swift 的地方

ane · June 07, 2014 · Last by dorentus replied at June 07, 2014 · 8035 hits

.1.函数作为返回值时候的写法

func makeIncrementer() -> (Int -> Int) {
    func addOne(number: Int) -> Int {
        return 1 + number
    }
    return addOne
}

既然函数作为返回值,那么外函数返回的必然是内函数的类型。何必要->(int->int)这样的繁琐的声明,直接->int不好吗?或者->(->int)or ->->int。 但是后来一想,他的意思应该是->(参数int ->返回值int)这样就合理了

.2. EquilateralTriangle 到现在也看不出实际作用?求教育,求指导。

.3.方法的参数名称除了在内部使用外还可以在外部使用(第一个参数除外)这个功能,依旧想象力匮乏,不太明白有什么强大的地方。

我以为这个是返回一个是返回值是整数并且参数是整数的函数?

  1. 我会告诉你可以去掉括号这么写吗?func makeIncrementer() -> Int -> Int { ... }
  2. 等边三角形模型,画图或许有用...
  3. 参数名称在外部使用 obj.f(a, g: b) , 对应调用 objc 的 API [obj f:a g:b], 所以现有的库都可以直接转化成 swift 的调用

1 是类型推导的惯用表示法。

->理解成函数的参数和返回值的分隔符

Unknow user #5 June 07, 2014

.1 写成 func makeIncrementer() -> Int 的话就变成声明返回值是 Int 而不是一个 (Int) -> Int 类型的函数了

You need to Sign in before reply, if you don't have an account, please Sign up first.