如何在Swift中调用Func到其他函数

时间:2017-03-22 07:38:19

标签: swift

如何在func中调用变量来添加另一个函数

例如

func firstFunc () {
  let number = 100
}

我希望将号码拨打到secondFunc

func secondFunc () {
  *I want to call number from firstFunc to here*
}

我该怎么做?

4 个答案:

答案 0 :(得分:3)

函数完成执行(返回)后,在其中声明的所有局部变量都将变得不可访问。因此,从number访问secondFunc而不更改firstFunc是不可能的。

根据您的情况和最终目标,有几种方法可以做到这一点。

  1. 返回:

    func firstFunc () {
        let number = 100
        return number
    }
    
    func secondFunc() {
        print(firstFunc()) // 100
    }
    
  2. 传递为参数:

    func firstFunc () {
        let number = 100
        secondFunc(parameter: number)
    }
    
    func secondFunc(parameter: Int) {
        print(parameter) // 100
    }
    
  3. 内功能:

    func firstFunc () {
        let number = 100
        func secondFunc() {
            print(number) // 100
        }
        secondFunc()
    }
    
  4. 返回,然后作为参数传递:

    func firstFunc () {
        let number = 100
        return number
    }
    
    func secondFunc(parameter: Int) {
        print(parameter) // 100
    }
    secondFunc(parameter: firstFunc())
    
  5. number全局:

    var number = 0
    func firstFunc () {
       number = 100
    }
    
    func secondFunc() {
        print(number) // 100
    }
    

答案 1 :(得分:1)

假设您不想将number设置为类级变量,您可以直接在secondFunc中访问,可以试试这个

func firstFunc() -> Int {
    return 100
}

func secondFunc () {
    *I want to call number from firstFunc to here*
    let otherNumber = firstFunc()
}

答案 2 :(得分:0)

您可以在firstFunction或

中使用return
func firstFunc () {
  let number = 100
    func secondFunc () {
        print(number)
    }
}

其他方式是:

func firstFunc () -> Int{ 
    let number = 100
    return number
}

func secondFunc () {
   print(firstFunc) //you will get value of number in firstFunc
}

答案 3 :(得分:0)

这里有两种选择。类变量或将变量传递给下一个函数。

示例1

var number = 100

func firstFunc () {
  number = 100
}

func secondFunc () {
  number = 2000
}

示例2

func firstFunc () {
  var number = 100
  secondFunc(number: number)
}

func secondFunc (var number:Int) {
  number = 2000
}