swift - swift中不同“流路径”的嵌套函数技术
问题描述
我正在学习面向对象的东西,并尝试将嵌套函数合并到我的代码中,以便了解这些不同的操作如何流动和工作,特别是嵌套函数。我想将值从一个函数传递给另一个函数,然后根据每个嵌套函数中的计算,输出某些最终数字。我无法理解如何在方法中获取和重新声明返回值,以便可以再次使用它们。
粗略的单嵌套示例:
func increaseNumbers(numOne: Double, numTwo: Double) -> (Double, Double) {
var numOneIncreased = numOne + 2
var numTwoIncreased = numTwo + 5
func playWithNumbersMore(warpOne: Double, warpTwo: Double) -> (Double, Double) {
if warpOne < 50 {
var adjustedOne = warpOne + 16.5
var adjustedTwo = warpTwo + 20.8
} else { do nothing... }
return (adjustedOne, adjustedTwo)
}
playWithNumbersMore(warpOne: numOneIncreased, warpTwo: numTwoIncreased)
// How do i re-assign the return values inside playWithNumbersMore?
return (something, somethingTwo)
}
粗略地说,如果可能的话,这就是我想做的:
func increaseNumbers(numOne: Double, numTwo: Double) -> (Double, Double) {
var numOneIncreased = numOne + 2
var numTwoIncreased = numTwo + 5
func playWithNumbersMore(warpOne: Double, warpTwo: Double) -> (Double, Double) {
if warpOne < 50 {
var adjustedOne = warpOne + 16.5
var adjustedTwo = warpTwo + 20.8
} else { do nothing... }
return (adjustedOne, adjustedTwo)
}
// I want to be able to take return values and do more with them... as well as redefine them
// on completion of final "parent function"
// Sort of like this:
var newNumbToPlayOne = adjustedOne
var newNumbToPlayTwo = adjustedTwo
func playMoreWithNewNumbers...
}
这是可能的还是我出轨了?
解决方案
func increaseNumbers(numOne: Double, numTwo: Double) -> (Double, Double) {
var numOneIncreased = numOne + 2
var numTwoIncreased = numTwo + 5
func playWithNumbersMore(warpOne: Double, warpTwo: Double) -> (Double, Double) {
if warpOne < 50 {
var adjustedOne = warpOne + 16.5
var adjustedTwo = warpTwo + 20.8
return (adjustedOne, adjustedTwo)
}
let result = playWithNumbersMore(warpOne: numOneIncreased, warpTwo: numTwoIncreased)
numOneIncreased = result.0 // result.0 is a adjustedOne
numTwoIncreased = result.1 // result.1 is a adjustedTwo
return result
}
这就是您可以使用 playWithNumbersMore 数据结果的方式。我错了还是这是一个正在寻找的东西?
推荐阅读
- sql - 导入平面文件“Microsoft.SqlServer.Prose.Import”时出错
- node.js - 从 bat 文件重新启动 node.js 服务器
- reactjs - 在 React-Semantic UI 中使用服务器响应数据更新模态值
- sql - T-SQL。GroupBy 截断 DATETIME 并按顺序排序
- javascript - 在 Expo 中集成条码扫描仪和数据库时遇到问题
- javascript - 如何从创建的 div 中删除我创建的 div?
- csv - 将一个csv文件拆分为多个文件
- javascript - 加载时如何将数据加载到其他网站的文本区域
- javascript - 根据对象是否包含详细属性过滤对象
- angular - 测试组件正在使用原始服务而不是监视它