Error[8]: Undefined offset: 117, File: /www/wwwroot/outofmemory.cn/tmp/plugin_ss_superseo_model_superseo.php, Line: 121
File: /www/wwwroot/outofmemory.cn/tmp/plugin_ss_superseo_model_superseo.php, Line: 473, decode(

概述本文来自斯坦福大学的iOS公开课-02 首先举个例子,一个计算器,需要最基本的加减乘除运算,代码如下 import Foundation//取 *** 作数,假设已经取到如下let op1 = 1.1;let op2 = 2.2;func operate(operation:NSString) { switch operation { case "+": perfor

本文来自斯坦福大学的iOS公开课-02

首先举个例子,一个计算器,需要最基本的加减乘除运算,代码如下

import Foundation//取 *** 作数,假设已经取到如下let op1 = 1.1;let op2 = 2.2;func operate(operation:Nsstring) {    switch operation {        case "+": performOperation(add)        case "-": performOperation(subtract)        case "×": performOperation(multiply)        case "÷": performOperation(devIDe)        default: break    }}//处理运算func performOperation(operation:(Double,Double) -> Double) { let value = operation(op1,op2); //得到结果后的一些其他 *** 作 NSLog("value = \(value)") } //× func multiply(op1:Double,op2:Double) -> Double {    return op1 * op2}//÷func devIDe(op1:Double,op2:Double) -> Double {    return op1 / op2}//+func add(op1:Double,op2:Double) -> Double {    return op1 + op2}//-func subtract(op1:Double,op2:Double) -> Double {    return op1 - op2}

一个operate方法用来判断运算符,一个performOperation方法用来处理运算,四个运算方法加减乘除。

接下来我们来简写

第一步,省去多余函数

add方法体直接替换到operate方法中。
需要注意三点,
1.直接把函数名之后的从括号开始全部移走
2.左花括号提到函数左括号前面
3.在原来左花括号的位置加一个单词in

//Step 1.直接把函数名之后的从括号开始全部移走 func operate(operation:Nsstring) {    switch operation {        case "+": performOperation((op1:Double,op2:Double) -> Double {    return op1 + op2})       ...    }}
//Step 2.左花括号提到函数左括号前面func operate(operation:Nsstring) {    switch operation {        case "+": performOperation({(op1:Double,op2:Double) -> Double     return op1 + op2})       ...    }}
//Step 3.在原来左花括号的位置加一个单词`in`func operate(operation:Nsstring) {    switch operation {        case "+": performOperation({(op1:Double,op2:Double) -> Double in    return op1 + op2})       ...    }}

现在的状态是没有红色报错的,并且改动处仍属于一条语句。

第二步,省去类型

因为Swift最厉害的地方就是类型推断,它可以通过上下文来推断一个变量的类型,所以根据上下文我们知道performOperation方法的参数为operation:(Double,Double) -> Double,即一个有两个Double类型作参数,返回一个Double类型的函数。

所以,我们可以把类型略掉,把返回类型去掉,箭头也当然要去掉。(这个和Lambda表达式有点类似)

func operate(operation:Nsstring) {    switch operation {        case "+": performOperation({(op1,op2) in return op1 + op2})       ...    }}

又因为Swift知道里面的表达式一定是返回一个值,所以return也可以不需要

func operate(operation:Nsstring) {    switch operation {        case "+": performOperation({(op1,op2) in op1 + op2})       ...    }}
第三步,最简化

这时有人突然跑来看你的代码,觉得很奇怪,为什么这里好像是调用op1op2在做某事,但是你都没有给他们定义呢(其实定义类型已经被我们略去了),那我们就干脆参数名也略掉吧。

在Swift中,会自动给参数顺序命名,,op1…所以这里也可以把op2替换成switch,"+",并且函数名也可以完全去掉了。

func operate(operation:Nsstring) {    0 operation {        case 1: performOperation({$... + $//取 *** 作数,假设已经取到如下})       1.1    }}

和原来比简直简化到不能忍!!!

可以回到最前面看下原来的代码,然后再看下下面简化后的:

import Foundation2.2let op1 = switch;let op2 = case;func operate(operation:Nsstring) {    "+" operation {         case: performOperation({ "-" +  })        case "×": performOperation({  - //当参数为最后一个参数时,可以放在外面 })        case "÷": performOperation(){  * //如果只有它一个参数,甚至可以不需要小括号 } default        break //处理运算: performOperation{ //得到结果后的一些其他 *** 作 / "value = \(value)" } performOperation        performOperation: [+++]    }}[+++]func performOperation(operation:(Double,Double) -> Double) {    let value = operation(op1,op2);    [+++]    NSLog([+++])}

细心的人注意到有个小小的变动,就是花括号刚好为[+++]最后一个参数,所以花括号可以放在[+++]的右括号外面;而如果只有一个参数的情况下,小括号可以去掉也没关系。

总结

以上是内存溢出为你收集整理的Swift方法的简写全部内容,希望文章能够帮你解决Swift方法的简写所遇到的程序开发问题。

如果觉得内存溢出网站内容还不错,欢迎将内存溢出网站推荐给程序员好友。

)
File: /www/wwwroot/outofmemory.cn/tmp/route_read.php, Line: 126, InsideLink()
File: /www/wwwroot/outofmemory.cn/tmp/index.inc.php, Line: 166, include(/www/wwwroot/outofmemory.cn/tmp/route_read.php)
File: /www/wwwroot/outofmemory.cn/index.php, Line: 30, include(/www/wwwroot/outofmemory.cn/tmp/index.inc.php)
Error[8]: Undefined offset: 118, File: /www/wwwroot/outofmemory.cn/tmp/plugin_ss_superseo_model_superseo.php, Line: 121
File: /www/wwwroot/outofmemory.cn/tmp/plugin_ss_superseo_model_superseo.php, Line: 473, decode(

概述本文来自斯坦福大学的iOS公开课-02 首先举个例子,一个计算器,需要最基本的加减乘除运算,代码如下 import Foundation//取 *** 作数,假设已经取到如下let op1 = 1.1;let op2 = 2.2;func operate(operation:NSString) { switch operation { case "+": perfor

本文来自斯坦福大学的iOS公开课-02

首先举个例子,一个计算器,需要最基本的加减乘除运算,代码如下

import Foundation//取 *** 作数,假设已经取到如下let op1 = 1.1;let op2 = 2.2;func operate(operation:Nsstring) {    switch operation {        case "+": performOperation(add)        case "-": performOperation(subtract)        case "×": performOperation(multiply)        case "÷": performOperation(devIDe)        default: break    }}//处理运算func performOperation(operation:(Double,Double) -> Double) { let value = operation(op1,op2); //得到结果后的一些其他 *** 作 NSLog("value = \(value)") } //× func multiply(op1:Double,op2:Double) -> Double {    return op1 * op2}//÷func devIDe(op1:Double,op2:Double) -> Double {    return op1 / op2}//+func add(op1:Double,op2:Double) -> Double {    return op1 + op2}//-func subtract(op1:Double,op2:Double) -> Double {    return op1 - op2}

一个operate方法用来判断运算符,一个performOperation方法用来处理运算,四个运算方法加减乘除。

接下来我们来简写

第一步,省去多余函数

add方法体直接替换到operate方法中。
需要注意三点,
1.直接把函数名之后的从括号开始全部移走
2.左花括号提到函数左括号前面
3.在原来左花括号的位置加一个单词in

//Step 1.直接把函数名之后的从括号开始全部移走 func operate(operation:Nsstring) {    switch operation {        case "+": performOperation((op1:Double,op2:Double) -> Double {    return op1 + op2})       ...    }}
//Step 2.左花括号提到函数左括号前面func operate(operation:Nsstring) {    switch operation {        case "+": performOperation({(op1:Double,op2:Double) -> Double     return op1 + op2})       ...    }}
//Step 3.在原来左花括号的位置加一个单词`in`func operate(operation:Nsstring) {    switch operation {        case "+": performOperation({(op1:Double,op2:Double) -> Double in    return op1 + op2})       ...    }}

现在的状态是没有红色报错的,并且改动处仍属于一条语句。

第二步,省去类型

因为Swift最厉害的地方就是类型推断,它可以通过上下文来推断一个变量的类型,所以根据上下文我们知道performOperation方法的参数为operation:(Double,Double) -> Double,即一个有两个Double类型作参数,返回一个Double类型的函数。

所以,我们可以把类型略掉,把返回类型去掉,箭头也当然要去掉。(这个和Lambda表达式有点类似)

func operate(operation:Nsstring) {    switch operation {        case "+": performOperation({(op1,op2) in return op1 + op2})       ...    }}

又因为Swift知道里面的表达式一定是返回一个值,所以return也可以不需要

func operate(operation:Nsstring) {    switch operation {        case "+": performOperation({(op1,op2) in op1 + op2})       ...    }}
第三步,最简化

这时有人突然跑来看你的代码,觉得很奇怪,为什么这里好像是调用op1op2在做某事,但是你都没有给他们定义呢(其实定义类型已经被我们略去了),那我们就干脆参数名也略掉吧。

在Swift中,会自动给参数顺序命名,,op1…所以这里也可以把op2替换成switch,"+",并且函数名也可以完全去掉了。

func operate(operation:Nsstring) {    0 operation {        case 1: performOperation({$... + $//取 *** 作数,假设已经取到如下})       1.1    }}

和原来比简直简化到不能忍!!!

可以回到最前面看下原来的代码,然后再看下下面简化后的:

import Foundation2.2let op1 = switch;let op2 = case;func operate(operation:Nsstring) {    "+" operation {         case: performOperation({ "-" +  })        case "×": performOperation({  - //当参数为最后一个参数时,可以放在外面 })        case "÷": performOperation(){  * //如果只有它一个参数,甚至可以不需要小括号 } default        break //处理运算: performOperation{ //得到结果后的一些其他 *** 作 / "value = \(value)" } performOperation        performOperation:     }}[+++]func performOperation(operation:(Double,Double) -> Double) {    let value = operation(op1,op2);    [+++]    NSLog([+++])}

细心的人注意到有个小小的变动,就是花括号刚好为[+++]最后一个参数,所以花括号可以放在[+++]的右括号外面;而如果只有一个参数的情况下,小括号可以去掉也没关系。

总结

以上是内存溢出为你收集整理的Swift方法的简写全部内容,希望文章能够帮你解决Swift方法的简写所遇到的程序开发问题。

如果觉得内存溢出网站内容还不错,欢迎将内存溢出网站推荐给程序员好友。

)
File: /www/wwwroot/outofmemory.cn/tmp/route_read.php, Line: 126, InsideLink()
File: /www/wwwroot/outofmemory.cn/tmp/index.inc.php, Line: 166, include(/www/wwwroot/outofmemory.cn/tmp/route_read.php)
File: /www/wwwroot/outofmemory.cn/index.php, Line: 30, include(/www/wwwroot/outofmemory.cn/tmp/index.inc.php)
Error[8]: Undefined offset: 119, File: /www/wwwroot/outofmemory.cn/tmp/plugin_ss_superseo_model_superseo.php, Line: 121
File: /www/wwwroot/outofmemory.cn/tmp/plugin_ss_superseo_model_superseo.php, Line: 473, decode(

概述本文来自斯坦福大学的iOS公开课-02 首先举个例子,一个计算器,需要最基本的加减乘除运算,代码如下 import Foundation//取 *** 作数,假设已经取到如下let op1 = 1.1;let op2 = 2.2;func operate(operation:NSString) { switch operation { case "+": perfor

本文来自斯坦福大学的iOS公开课-02

首先举个例子,一个计算器,需要最基本的加减乘除运算,代码如下

import Foundation//取 *** 作数,假设已经取到如下let op1 = 1.1;let op2 = 2.2;func operate(operation:Nsstring) {    switch operation {        case "+": performOperation(add)        case "-": performOperation(subtract)        case "×": performOperation(multiply)        case "÷": performOperation(devIDe)        default: break    }}//处理运算func performOperation(operation:(Double,Double) -> Double) { let value = operation(op1,op2); //得到结果后的一些其他 *** 作 NSLog("value = \(value)") } //× func multiply(op1:Double,op2:Double) -> Double {    return op1 * op2}//÷func devIDe(op1:Double,op2:Double) -> Double {    return op1 / op2}//+func add(op1:Double,op2:Double) -> Double {    return op1 + op2}//-func subtract(op1:Double,op2:Double) -> Double {    return op1 - op2}

一个operate方法用来判断运算符,一个performOperation方法用来处理运算,四个运算方法加减乘除。

接下来我们来简写

第一步,省去多余函数

add方法体直接替换到operate方法中。
需要注意三点,
1.直接把函数名之后的从括号开始全部移走
2.左花括号提到函数左括号前面
3.在原来左花括号的位置加一个单词in

//Step 1.直接把函数名之后的从括号开始全部移走 func operate(operation:Nsstring) {    switch operation {        case "+": performOperation((op1:Double,op2:Double) -> Double {    return op1 + op2})       ...    }}
//Step 2.左花括号提到函数左括号前面func operate(operation:Nsstring) {    switch operation {        case "+": performOperation({(op1:Double,op2:Double) -> Double     return op1 + op2})       ...    }}
//Step 3.在原来左花括号的位置加一个单词`in`func operate(operation:Nsstring) {    switch operation {        case "+": performOperation({(op1:Double,op2:Double) -> Double in    return op1 + op2})       ...    }}

现在的状态是没有红色报错的,并且改动处仍属于一条语句。

第二步,省去类型

因为Swift最厉害的地方就是类型推断,它可以通过上下文来推断一个变量的类型,所以根据上下文我们知道performOperation方法的参数为operation:(Double,Double) -> Double,即一个有两个Double类型作参数,返回一个Double类型的函数。

所以,我们可以把类型略掉,把返回类型去掉,箭头也当然要去掉。(这个和Lambda表达式有点类似)

func operate(operation:Nsstring) {    switch operation {        case "+": performOperation({(op1,op2) in return op1 + op2})       ...    }}

又因为Swift知道里面的表达式一定是返回一个值,所以return也可以不需要

func operate(operation:Nsstring) {    switch operation {        case "+": performOperation({(op1,op2) in op1 + op2})       ...    }}
第三步,最简化

这时有人突然跑来看你的代码,觉得很奇怪,为什么这里好像是调用op1op2在做某事,但是你都没有给他们定义呢(其实定义类型已经被我们略去了),那我们就干脆参数名也略掉吧。

在Swift中,会自动给参数顺序命名,,op1…所以这里也可以把op2替换成switch,"+",并且函数名也可以完全去掉了。

func operate(operation:Nsstring) {    0 operation {        case 1: performOperation({$... + $//取 *** 作数,假设已经取到如下})       1.1    }}

和原来比简直简化到不能忍!!!

可以回到最前面看下原来的代码,然后再看下下面简化后的:

import Foundation2.2let op1 = switch;let op2 = case;func operate(operation:Nsstring) {    "+" operation {         case: performOperation({ "-" +  })        case "×": performOperation({  - //当参数为最后一个参数时,可以放在外面 })        case "÷": performOperation(){  * //如果只有它一个参数,甚至可以不需要小括号 } default        break //处理运算: performOperation{ //得到结果后的一些其他 *** 作 / "value = \(value)" } performOperation        performOperation:     }}func performOperation(operation:(Double,Double) -> Double) {    let value = operation(op1,op2);    [+++]    NSLog([+++])}

细心的人注意到有个小小的变动,就是花括号刚好为[+++]最后一个参数,所以花括号可以放在[+++]的右括号外面;而如果只有一个参数的情况下,小括号可以去掉也没关系。

总结

以上是内存溢出为你收集整理的Swift方法的简写全部内容,希望文章能够帮你解决Swift方法的简写所遇到的程序开发问题。

如果觉得内存溢出网站内容还不错,欢迎将内存溢出网站推荐给程序员好友。

)
File: /www/wwwroot/outofmemory.cn/tmp/route_read.php, Line: 126, InsideLink()
File: /www/wwwroot/outofmemory.cn/tmp/index.inc.php, Line: 166, include(/www/wwwroot/outofmemory.cn/tmp/route_read.php)
File: /www/wwwroot/outofmemory.cn/index.php, Line: 30, include(/www/wwwroot/outofmemory.cn/tmp/index.inc.php)
Error[8]: Undefined offset: 120, File: /www/wwwroot/outofmemory.cn/tmp/plugin_ss_superseo_model_superseo.php, Line: 121
File: /www/wwwroot/outofmemory.cn/tmp/plugin_ss_superseo_model_superseo.php, Line: 473, decode(

概述本文来自斯坦福大学的iOS公开课-02 首先举个例子,一个计算器,需要最基本的加减乘除运算,代码如下 import Foundation//取 *** 作数,假设已经取到如下let op1 = 1.1;let op2 = 2.2;func operate(operation:NSString) { switch operation { case "+": perfor

本文来自斯坦福大学的iOS公开课-02

首先举个例子,一个计算器,需要最基本的加减乘除运算,代码如下

import Foundation//取 *** 作数,假设已经取到如下let op1 = 1.1;let op2 = 2.2;func operate(operation:Nsstring) {    switch operation {        case "+": performOperation(add)        case "-": performOperation(subtract)        case "×": performOperation(multiply)        case "÷": performOperation(devIDe)        default: break    }}//处理运算func performOperation(operation:(Double,Double) -> Double) { let value = operation(op1,op2); //得到结果后的一些其他 *** 作 NSLog("value = \(value)") } //× func multiply(op1:Double,op2:Double) -> Double {    return op1 * op2}//÷func devIDe(op1:Double,op2:Double) -> Double {    return op1 / op2}//+func add(op1:Double,op2:Double) -> Double {    return op1 + op2}//-func subtract(op1:Double,op2:Double) -> Double {    return op1 - op2}

一个operate方法用来判断运算符,一个performOperation方法用来处理运算,四个运算方法加减乘除。

接下来我们来简写

第一步,省去多余函数

add方法体直接替换到operate方法中。
需要注意三点,
1.直接把函数名之后的从括号开始全部移走
2.左花括号提到函数左括号前面
3.在原来左花括号的位置加一个单词in

//Step 1.直接把函数名之后的从括号开始全部移走 func operate(operation:Nsstring) {    switch operation {        case "+": performOperation((op1:Double,op2:Double) -> Double {    return op1 + op2})       ...    }}
//Step 2.左花括号提到函数左括号前面func operate(operation:Nsstring) {    switch operation {        case "+": performOperation({(op1:Double,op2:Double) -> Double     return op1 + op2})       ...    }}
//Step 3.在原来左花括号的位置加一个单词`in`func operate(operation:Nsstring) {    switch operation {        case "+": performOperation({(op1:Double,op2:Double) -> Double in    return op1 + op2})       ...    }}

现在的状态是没有红色报错的,并且改动处仍属于一条语句。

第二步,省去类型

因为Swift最厉害的地方就是类型推断,它可以通过上下文来推断一个变量的类型,所以根据上下文我们知道performOperation方法的参数为operation:(Double,Double) -> Double,即一个有两个Double类型作参数,返回一个Double类型的函数。

所以,我们可以把类型略掉,把返回类型去掉,箭头也当然要去掉。(这个和Lambda表达式有点类似)

func operate(operation:Nsstring) {    switch operation {        case "+": performOperation({(op1,op2) in return op1 + op2})       ...    }}

又因为Swift知道里面的表达式一定是返回一个值,所以return也可以不需要

func operate(operation:Nsstring) {    switch operation {        case "+": performOperation({(op1,op2) in op1 + op2})       ...    }}
第三步,最简化

这时有人突然跑来看你的代码,觉得很奇怪,为什么这里好像是调用op1op2在做某事,但是你都没有给他们定义呢(其实定义类型已经被我们略去了),那我们就干脆参数名也略掉吧。

在Swift中,会自动给参数顺序命名,,op1…所以这里也可以把op2替换成switch,"+",并且函数名也可以完全去掉了。

func operate(operation:Nsstring) {    0 operation {        case 1: performOperation({$... + $//取 *** 作数,假设已经取到如下})       1.1    }}

和原来比简直简化到不能忍!!!

可以回到最前面看下原来的代码,然后再看下下面简化后的:

import Foundation2.2let op1 = switch;let op2 = case;func operate(operation:Nsstring) {    "+" operation {         case: performOperation({ "-" +  })        case "×": performOperation({  - //当参数为最后一个参数时,可以放在外面 })        case "÷": performOperation(){  * //如果只有它一个参数,甚至可以不需要小括号 } default        break //处理运算: performOperation{ //得到结果后的一些其他 *** 作 / "value = \(value)" } performOperation        performOperation:     }}func performOperation(operation:(Double,Double) -> Double) {    let value = operation(op1,op2);        NSLog([+++])}

细心的人注意到有个小小的变动,就是花括号刚好为[+++]最后一个参数,所以花括号可以放在[+++]的右括号外面;而如果只有一个参数的情况下,小括号可以去掉也没关系。

总结

以上是内存溢出为你收集整理的Swift方法的简写全部内容,希望文章能够帮你解决Swift方法的简写所遇到的程序开发问题。

如果觉得内存溢出网站内容还不错,欢迎将内存溢出网站推荐给程序员好友。

)
File: /www/wwwroot/outofmemory.cn/tmp/route_read.php, Line: 126, InsideLink()
File: /www/wwwroot/outofmemory.cn/tmp/index.inc.php, Line: 166, include(/www/wwwroot/outofmemory.cn/tmp/route_read.php)
File: /www/wwwroot/outofmemory.cn/index.php, Line: 30, include(/www/wwwroot/outofmemory.cn/tmp/index.inc.php)
Error[8]: Undefined offset: 121, File: /www/wwwroot/outofmemory.cn/tmp/plugin_ss_superseo_model_superseo.php, Line: 121
File: /www/wwwroot/outofmemory.cn/tmp/plugin_ss_superseo_model_superseo.php, Line: 473, decode(

概述本文来自斯坦福大学的iOS公开课-02 首先举个例子,一个计算器,需要最基本的加减乘除运算,代码如下 import Foundation//取 *** 作数,假设已经取到如下let op1 = 1.1;let op2 = 2.2;func operate(operation:NSString) { switch operation { case "+": perfor

本文来自斯坦福大学的iOS公开课-02

首先举个例子,一个计算器,需要最基本的加减乘除运算,代码如下

import Foundation//取 *** 作数,假设已经取到如下let op1 = 1.1;let op2 = 2.2;func operate(operation:Nsstring) {    switch operation {        case "+": performOperation(add)        case "-": performOperation(subtract)        case "×": performOperation(multiply)        case "÷": performOperation(devIDe)        default: break    }}//处理运算func performOperation(operation:(Double,Double) -> Double) { let value = operation(op1,op2); //得到结果后的一些其他 *** 作 NSLog("value = \(value)") } //× func multiply(op1:Double,op2:Double) -> Double {    return op1 * op2}//÷func devIDe(op1:Double,op2:Double) -> Double {    return op1 / op2}//+func add(op1:Double,op2:Double) -> Double {    return op1 + op2}//-func subtract(op1:Double,op2:Double) -> Double {    return op1 - op2}

一个operate方法用来判断运算符,一个performOperation方法用来处理运算,四个运算方法加减乘除。

接下来我们来简写

第一步,省去多余函数

add方法体直接替换到operate方法中。
需要注意三点,
1.直接把函数名之后的从括号开始全部移走
2.左花括号提到函数左括号前面
3.在原来左花括号的位置加一个单词in

//Step 1.直接把函数名之后的从括号开始全部移走 func operate(operation:Nsstring) {    switch operation {        case "+": performOperation((op1:Double,op2:Double) -> Double {    return op1 + op2})       ...    }}
//Step 2.左花括号提到函数左括号前面func operate(operation:Nsstring) {    switch operation {        case "+": performOperation({(op1:Double,op2:Double) -> Double     return op1 + op2})       ...    }}
//Step 3.在原来左花括号的位置加一个单词`in`func operate(operation:Nsstring) {    switch operation {        case "+": performOperation({(op1:Double,op2:Double) -> Double in    return op1 + op2})       ...    }}

现在的状态是没有红色报错的,并且改动处仍属于一条语句。

第二步,省去类型

因为Swift最厉害的地方就是类型推断,它可以通过上下文来推断一个变量的类型,所以根据上下文我们知道performOperation方法的参数为operation:(Double,Double) -> Double,即一个有两个Double类型作参数,返回一个Double类型的函数。

所以,我们可以把类型略掉,把返回类型去掉,箭头也当然要去掉。(这个和Lambda表达式有点类似)

func operate(operation:Nsstring) {    switch operation {        case "+": performOperation({(op1,op2) in return op1 + op2})       ...    }}

又因为Swift知道里面的表达式一定是返回一个值,所以return也可以不需要

func operate(operation:Nsstring) {    switch operation {        case "+": performOperation({(op1,op2) in op1 + op2})       ...    }}
第三步,最简化

这时有人突然跑来看你的代码,觉得很奇怪,为什么这里好像是调用op1op2在做某事,但是你都没有给他们定义呢(其实定义类型已经被我们略去了),那我们就干脆参数名也略掉吧。

在Swift中,会自动给参数顺序命名,,op1…所以这里也可以把op2替换成switch,"+",并且函数名也可以完全去掉了。

func operate(operation:Nsstring) {    0 operation {        case 1: performOperation({$... + $//取 *** 作数,假设已经取到如下})       1.1    }}

和原来比简直简化到不能忍!!!

可以回到最前面看下原来的代码,然后再看下下面简化后的:

import Foundation2.2let op1 = switch;let op2 = case;func operate(operation:Nsstring) {    "+" operation {         case: performOperation({ "-" +  })        case "×": performOperation({  - //当参数为最后一个参数时,可以放在外面 })        case "÷": performOperation(){  * //如果只有它一个参数,甚至可以不需要小括号 } default        break //处理运算: performOperation{ //得到结果后的一些其他 *** 作 / "value = \(value)" } performOperation        performOperation:     }}func performOperation(operation:(Double,Double) -> Double) {    let value = operation(op1,op2);        NSLog()}

细心的人注意到有个小小的变动,就是花括号刚好为[+++]最后一个参数,所以花括号可以放在[+++]的右括号外面;而如果只有一个参数的情况下,小括号可以去掉也没关系。

总结

以上是内存溢出为你收集整理的Swift方法的简写全部内容,希望文章能够帮你解决Swift方法的简写所遇到的程序开发问题。

如果觉得内存溢出网站内容还不错,欢迎将内存溢出网站推荐给程序员好友。

)
File: /www/wwwroot/outofmemory.cn/tmp/route_read.php, Line: 126, InsideLink()
File: /www/wwwroot/outofmemory.cn/tmp/index.inc.php, Line: 166, include(/www/wwwroot/outofmemory.cn/tmp/route_read.php)
File: /www/wwwroot/outofmemory.cn/index.php, Line: 30, include(/www/wwwroot/outofmemory.cn/tmp/index.inc.php)
Error[8]: Undefined offset: 122, File: /www/wwwroot/outofmemory.cn/tmp/plugin_ss_superseo_model_superseo.php, Line: 121
File: /www/wwwroot/outofmemory.cn/tmp/plugin_ss_superseo_model_superseo.php, Line: 473, decode(

概述本文来自斯坦福大学的iOS公开课-02 首先举个例子,一个计算器,需要最基本的加减乘除运算,代码如下 import Foundation//取 *** 作数,假设已经取到如下let op1 = 1.1;let op2 = 2.2;func operate(operation:NSString) { switch operation { case "+": perfor

本文来自斯坦福大学的iOS公开课-02

首先举个例子,一个计算器,需要最基本的加减乘除运算,代码如下

import Foundation//取 *** 作数,假设已经取到如下let op1 = 1.1;let op2 = 2.2;func operate(operation:Nsstring) {    switch operation {        case "+": performOperation(add)        case "-": performOperation(subtract)        case "×": performOperation(multiply)        case "÷": performOperation(devIDe)        default: break    }}//处理运算func performOperation(operation:(Double,Double) -> Double) { let value = operation(op1,op2); //得到结果后的一些其他 *** 作 NSLog("value = \(value)") } //× func multiply(op1:Double,op2:Double) -> Double {    return op1 * op2}//÷func devIDe(op1:Double,op2:Double) -> Double {    return op1 / op2}//+func add(op1:Double,op2:Double) -> Double {    return op1 + op2}//-func subtract(op1:Double,op2:Double) -> Double {    return op1 - op2}

一个operate方法用来判断运算符,一个performOperation方法用来处理运算,四个运算方法加减乘除。

接下来我们来简写

第一步,省去多余函数

add方法体直接替换到operate方法中。
需要注意三点,
1.直接把函数名之后的从括号开始全部移走
2.左花括号提到函数左括号前面
3.在原来左花括号的位置加一个单词in

//Step 1.直接把函数名之后的从括号开始全部移走 func operate(operation:Nsstring) {    switch operation {        case "+": performOperation((op1:Double,op2:Double) -> Double {    return op1 + op2})       ...    }}
//Step 2.左花括号提到函数左括号前面func operate(operation:Nsstring) {    switch operation {        case "+": performOperation({(op1:Double,op2:Double) -> Double     return op1 + op2})       ...    }}
//Step 3.在原来左花括号的位置加一个单词`in`func operate(operation:Nsstring) {    switch operation {        case "+": performOperation({(op1:Double,op2:Double) -> Double in    return op1 + op2})       ...    }}

现在的状态是没有红色报错的,并且改动处仍属于一条语句。

第二步,省去类型

因为Swift最厉害的地方就是类型推断,它可以通过上下文来推断一个变量的类型,所以根据上下文我们知道performOperation方法的参数为operation:(Double,Double) -> Double,即一个有两个Double类型作参数,返回一个Double类型的函数。

所以,我们可以把类型略掉,把返回类型去掉,箭头也当然要去掉。(这个和Lambda表达式有点类似)

func operate(operation:Nsstring) {    switch operation {        case "+": performOperation({(op1,op2) in return op1 + op2})       ...    }}

又因为Swift知道里面的表达式一定是返回一个值,所以return也可以不需要

func operate(operation:Nsstring) {    switch operation {        case "+": performOperation({(op1,op2) in op1 + op2})       ...    }}
第三步,最简化

这时有人突然跑来看你的代码,觉得很奇怪,为什么这里好像是调用op1op2在做某事,但是你都没有给他们定义呢(其实定义类型已经被我们略去了),那我们就干脆参数名也略掉吧。

在Swift中,会自动给参数顺序命名,,op1…所以这里也可以把op2替换成switch,"+",并且函数名也可以完全去掉了。

func operate(operation:Nsstring) {    0 operation {        case 1: performOperation({$... + $//取 *** 作数,假设已经取到如下})       1.1    }}

和原来比简直简化到不能忍!!!

可以回到最前面看下原来的代码,然后再看下下面简化后的:

import Foundation2.2let op1 = switch;let op2 = case;func operate(operation:Nsstring) {    "+" operation {         case: performOperation({ "-" +  })        case "×": performOperation({  - //当参数为最后一个参数时,可以放在外面 })        case "÷": performOperation(){  * //如果只有它一个参数,甚至可以不需要小括号 } default        break //处理运算: performOperation{ //得到结果后的一些其他 *** 作 / "value = \(value)" } performOperation        performOperation:     }}func performOperation(operation:(Double,Double) -> Double) {    let value = operation(op1,op2);        NSLog()}

细心的人注意到有个小小的变动,就是花括号刚好为最后一个参数,所以花括号可以放在[+++]的右括号外面;而如果只有一个参数的情况下,小括号可以去掉也没关系。

总结

以上是内存溢出为你收集整理的Swift方法的简写全部内容,希望文章能够帮你解决Swift方法的简写所遇到的程序开发问题。

如果觉得内存溢出网站内容还不错,欢迎将内存溢出网站推荐给程序员好友。

)
File: /www/wwwroot/outofmemory.cn/tmp/route_read.php, Line: 126, InsideLink()
File: /www/wwwroot/outofmemory.cn/tmp/index.inc.php, Line: 166, include(/www/wwwroot/outofmemory.cn/tmp/route_read.php)
File: /www/wwwroot/outofmemory.cn/index.php, Line: 30, include(/www/wwwroot/outofmemory.cn/tmp/index.inc.php)
Swift方法的简写_app_内存溢出

Swift方法的简写

Swift方法的简写,第1张

概述本文来自斯坦福大学的iOS公开课-02 首先举个例子,一个计算器,需要最基本的加减乘除运算,代码如下 import Foundation//取 *** 作数,假设已经取到如下let op1 = 1.1;let op2 = 2.2;func operate(operation:NSString) { switch operation { case "+": perfor

本文来自斯坦福大学的iOS公开课-02

首先举个例子,一个计算器,需要最基本的加减乘除运算,代码如下

import Foundation//取 *** 作数,假设已经取到如下let op1 = 1.1;let op2 = 2.2;func operate(operation:Nsstring) {    switch operation {        case "+": performOperation(add)        case "-": performOperation(subtract)        case "×": performOperation(multiply)        case "÷": performOperation(devIDe)        default: break    }}//处理运算func performOperation(operation:(Double,Double) -> Double) { let value = operation(op1,op2); //得到结果后的一些其他 *** 作 NSLog("value = \(value)") } //× func multiply(op1:Double,op2:Double) -> Double {    return op1 * op2}//÷func devIDe(op1:Double,op2:Double) -> Double {    return op1 / op2}//+func add(op1:Double,op2:Double) -> Double {    return op1 + op2}//-func subtract(op1:Double,op2:Double) -> Double {    return op1 - op2}

一个operate方法用来判断运算符,一个performOperation方法用来处理运算,四个运算方法加减乘除。

接下来我们来简写

第一步,省去多余函数

add方法体直接替换到operate方法中。
需要注意三点,
1.直接把函数名之后的从括号开始全部移走
2.左花括号提到函数左括号前面
3.在原来左花括号的位置加一个单词in

//Step 1.直接把函数名之后的从括号开始全部移走 func operate(operation:Nsstring) {    switch operation {        case "+": performOperation((op1:Double,op2:Double) -> Double {    return op1 + op2})       ...    }}
//Step 2.左花括号提到函数左括号前面func operate(operation:Nsstring) {    switch operation {        case "+": performOperation({(op1:Double,op2:Double) -> Double     return op1 + op2})       ...    }}
//Step 3.在原来左花括号的位置加一个单词`in`func operate(operation:Nsstring) {    switch operation {        case "+": performOperation({(op1:Double,op2:Double) -> Double in    return op1 + op2})       ...    }}

现在的状态是没有红色报错的,并且改动处仍属于一条语句。

第二步,省去类型

因为Swift最厉害的地方就是类型推断,它可以通过上下文来推断一个变量的类型,所以根据上下文我们知道performOperation方法的参数为operation:(Double,Double) -> Double,即一个有两个Double类型作参数,返回一个Double类型的函数。

所以,我们可以把类型略掉,把返回类型去掉,箭头也当然要去掉。(这个和Lambda表达式有点类似)

func operate(operation:Nsstring) {    switch operation {        case "+": performOperation({(op1,op2) in return op1 + op2})       ...    }}

又因为Swift知道里面的表达式一定是返回一个值,所以return也可以不需要

func operate(operation:Nsstring) {    switch operation {        case "+": performOperation({(op1,op2) in op1 + op2})       ...    }}
第三步,最简化

这时有人突然跑来看你的代码,觉得很奇怪,为什么这里好像是调用op1op2在做某事,但是你都没有给他们定义呢(其实定义类型已经被我们略去了),那我们就干脆参数名也略掉吧。

在Swift中,会自动给参数顺序命名,,op1…所以这里也可以把op2替换成switch,"+",并且函数名也可以完全去掉了。

func operate(operation:Nsstring) {    0 operation {        case 1: performOperation({$... + $//取 *** 作数,假设已经取到如下})       1.1    }}

和原来比简直简化到不能忍!!!

可以回到最前面看下原来的代码,然后再看下下面简化后的:

import Foundation2.2let op1 = switch;let op2 = case;func operate(operation:Nsstring) {    "+" operation {         case: performOperation({ "-" +  })        case "×": performOperation({  - //当参数为最后一个参数时,可以放在外面 })        case "÷": performOperation(){  * //如果只有它一个参数,甚至可以不需要小括号 } default        break //处理运算: performOperation{ //得到结果后的一些其他 *** 作 / "value = \(value)" } performOperation        performOperation:     }}func performOperation(operation:(Double,Double) -> Double) {    let value = operation(op1,op2);        NSLog()}

细心的人注意到有个小小的变动,就是花括号刚好为最后一个参数,所以花括号可以放在的右括号外面;而如果只有一个参数的情况下,小括号可以去掉也没关系。

总结

以上是内存溢出为你收集整理的Swift方法的简写全部内容,希望文章能够帮你解决Swift方法的简写所遇到的程序开发问题。

如果觉得内存溢出网站内容还不错,欢迎将内存溢出网站推荐给程序员好友。

欢迎分享,转载请注明来源:内存溢出

原文地址: https://outofmemory.cn/web/1080267.html

(0)
打赏 微信扫一扫 微信扫一扫 支付宝扫一扫 支付宝扫一扫
上一篇 2022-05-27
下一篇 2022-05-27

发表评论

登录后才能评论

评论列表(0条)

保存