Swift方法参数中的3项是什么?

Swift方法参数中的3项是什么?,swift,Swift,例如: mutating func moveByX(deltaX: Double, y deltaY: Double) 第一个参数接受一个Double并将其保存在该方法范围中,作为deltaX。但是,什么是y和deltaY 我读了这篇文章,找不到任何相关信息:deltaX和deltaY是编写函数时的参数名。但是,当您调用函数时,它将被称为movebyX(val,y:val),其中val被传递到函数中的双精度替换。中间的Y本质上是为了帮助函数在调用时的可读性,并且是SWIFT中使代码尽可能可读的

例如:

mutating func moveByX(deltaX: Double, y deltaY: Double)
第一个参数接受一个Double并将其保存在该方法范围中,作为
deltaX
。但是,什么是
y
deltaY


我读了这篇文章,找不到任何相关信息:

deltaX
deltaY
是编写函数时的参数名。但是,当您调用函数时,它将被称为
movebyX(val,y:val)
,其中
val
被传递到函数中的双精度替换。中间的Y本质上是为了帮助函数在调用时的可读性,并且是SWIFT中使代码尽可能可读的常用方法(调用函数的人可以很容易地查看每个参数而不看函数头)。.

deltaX
deltaY
是编写函数时的参数名称。但是,当您调用函数时,它将被称为
movebyX(val,y:val)
,其中
val
被传递到函数中的双精度替换。中间的Y本质上是为了帮助函数在调用时的可读性,并且是SWIFT中使代码尽可能可读的常用方法(调用函数的人可以很容易地查看每个参数而不看函数头)。
  • y
  • deltaY
    是本地参数名,并且
  • Double
    是参数的类型
如果您熟悉Objective-C,这对应于具有以下声明的方法:

-(void)moveByX:(double)deltaX y:(double)deltaY;
以你为例,

  • y
  • deltaY
    是本地参数名,并且
  • Double
    是参数的类型
如果您熟悉Objective-C,这对应于具有以下声明的方法:

-(void)moveByX:(double)deltaX y:(double)deltaY;

这就是Swift模仿Objective C的命名参数(参数的伪命名)的方式。它很容易崩溃

mutating func moveByX(deltaX: Double, y deltaY: Double)
                1        2      3     4   5       6
  • 方法名的开头
  • 第一个参数名
  • 第一参数类型
  • 方法名称的第二部分
  • 第二个参数名
  • 第二参数类型 在本例中,该方法实际上被称为
    moveByX:y:
    等效的Objective C方法定义如下所示

    - (void)moveByX:(Double)deltaX y:(Double)deltaY
    
    调用此方法时,名称的第二部分将单独包含在其余参数中

    var dub = Double(0.5)
    moveByX(dub, y: dub)
    

    这就是Swift模仿Objective C的命名参数(参数的伪命名)的方式。它很容易崩溃

    mutating func moveByX(deltaX: Double, y deltaY: Double)
                    1        2      3     4   5       6
    
  • 方法名的开头
  • 第一个参数名
  • 第一参数类型
  • 方法名称的第二部分
  • 第二个参数名
  • 第二参数类型 在本例中,该方法实际上被称为
    moveByX:y:
    等效的Objective C方法定义如下所示

    - (void)moveByX:(Double)deltaX y:(Double)deltaY
    
    调用此方法时,名称的第二部分将单独包含在其余参数中

    var dub = Double(0.5)
    moveByX(dub, y: dub)
    

    swift中的方法具有外部参数名和本地参数名。如果只定义了一个,则先定义外部,然后再定义外部。swift编译器会将默认值设置为

    Swift默认为方法中的第一个参数名提供本地参数名,默认为第二个和后续参数名提供本地和外部参数名

    在本例中,“y”是调用该方法时使用的外部参数,“deltaY”是该函数内部计算中使用的变量名

    还可以使用u表示不希望参数具有外部名称。 #当外部名称和内部名称相同时,用于速记

    例子

    (一)

    这就是所谓的:

     exampleFunction(externalVarName1: 0, externalVarName2: 0)
    
    (二)

    是这样叫的

    exampleFunction2(0, 0)
    
    exampleFunction3(nameForBoth: 0, nameForBoth2: 0)
    
    exampleFunction4(nameForBoth: 0, nameForBoth2: 0)
    
     exampleFunction5(0, 0)
    
    (三)

    是这样叫的

    exampleFunction2(0, 0)
    
    exampleFunction3(nameForBoth: 0, nameForBoth2: 0)
    
    exampleFunction4(nameForBoth: 0, nameForBoth2: 0)
    
     exampleFunction5(0, 0)
    
    (四)

    与3)相同,但会抛出一个警告,提示可以使用#shorthhand。这样叫

    exampleFunction2(0, 0)
    
    exampleFunction3(nameForBoth: 0, nameForBoth2: 0)
    
    exampleFunction4(nameForBoth: 0, nameForBoth2: 0)
    
     exampleFunction5(0, 0)
    
    (五)

    是这样叫的

    exampleFunction2(0, 0)
    
    exampleFunction3(nameForBoth: 0, nameForBoth2: 0)
    
    exampleFunction4(nameForBoth: 0, nameForBoth2: 0)
    
     exampleFunction5(0, 0)
    

    swift中的方法具有外部参数名和本地参数名。如果只定义了一个,则先定义外部,然后再定义外部。swift编译器会将默认值设置为

    Swift默认为方法中的第一个参数名提供本地参数名,默认为第二个和后续参数名提供本地和外部参数名

    在本例中,“y”是调用该方法时使用的外部参数,“deltaY”是该函数内部计算中使用的变量名

    还可以使用u表示不希望参数具有外部名称。 #当外部名称和内部名称相同时,用于速记

    例子

    (一)

    这就是所谓的:

     exampleFunction(externalVarName1: 0, externalVarName2: 0)
    
    (二)

    是这样叫的

    exampleFunction2(0, 0)
    
    exampleFunction3(nameForBoth: 0, nameForBoth2: 0)
    
    exampleFunction4(nameForBoth: 0, nameForBoth2: 0)
    
     exampleFunction5(0, 0)
    
    (三)

    是这样叫的

    exampleFunction2(0, 0)
    
    exampleFunction3(nameForBoth: 0, nameForBoth2: 0)
    
    exampleFunction4(nameForBoth: 0, nameForBoth2: 0)
    
     exampleFunction5(0, 0)
    
    (四)

    与3)相同,但会抛出一个警告,提示可以使用#shorthhand。这样叫

    exampleFunction2(0, 0)
    
    exampleFunction3(nameForBoth: 0, nameForBoth2: 0)
    
    exampleFunction4(nameForBoth: 0, nameForBoth2: 0)
    
     exampleFunction5(0, 0)
    
    (五)

    是这样叫的

    exampleFunction2(0, 0)
    
    exampleFunction3(nameForBoth: 0, nameForBoth2: 0)
    
    exampleFunction4(nameForBoth: 0, nameForBoth2: 0)
    
     exampleFunction5(0, 0)
    

    奇怪的是,这不是更具可读性吗-(void)moveByX:(双)deltaX moveByY:(双)deltaY@SamB外部名称背后的思想是使调用“读起来像英语一样”。在
    Y
    前面重复
    moveBy
    会让我们离这个目标更远。奇怪的是,这不是更容易理解吗-(void)moveByX:(双)deltaX moveByY:(双)deltaY@SamB外部名称背后的思想是使调用“读起来像英语一样”。在
    Y
    前面重复
    moveBy
    会让我们离目标更远。只有两个参数,其中一个有外部名称。只有两个参数,其中一个有外部名称。我对Objective-C不熟悉。我刚用Swift跳上了iOS。那么,这种方法是可选的吗?@user83039您不必这样命名函数,但我们鼓励这样做。这些方法应该是自己做的