2016-04-25 6 views
2

, как использовать параметр Underscoreбыстры FUNC: я не могу понять, подчеркнуть, как имя параметра, который может составить

func test(currentName name: String, _: Int) { 

    print("aa\(name) abc"); 
    //how to use _ parameter? 
} 

test(currentName:"aa", 3) 
+2

http://stackoverflow.com/questions/24270732/what-do-and-in-mean-in-swift-programming-language это имя параметра-заполнителя. _ означает, что он не будет использоваться. – Sahil

ответ

2

_ означает, что при вызове функции test, вы не должны писать текст перед второй параметр test(currentName:"aa", 3)

если вы объявить функцию как это:

func test(currentName name: String, secondParameter: Int) {  
    print("aa\(name) abc"); 
    //how to use _ parameter? 
} 

затем при вызове функции test , Вы должны назвать так:

test(currentName:"aa", secondParameter: 3) 
+0

func like func test (currentName name: String, _: Int) { print ("aa \ (name) abc"); // как использовать параметр _? } –

+0

@Blue joy мы можем использовать _ в функциональном теле как параметр. – Sahil

1

Если вы хотите использовать второй параметр функции, но не хотите «имя» это, вы должны изменить подпись функции func test(currentName name: String, age _: Int), а затем обратитесь к второму аргументу как age.

func test(currentName name: String, _ age: Int) { 
    print("Name: \(name), age: \(age)") 
} 

test(name: "Piter", 3) 
+0

У вас есть currentName и имя поменялось в первой строке. – MikeJfromVA

+1

Спасибо, @MikeJfromVA! Я исправил это. –

2

В Swift функции имеют как метки параметров, так и имена параметров. Это делается для ясности при использовании функций. Подумайте о нормальной функции C, она объявлена ​​как таковой:

string FunctionName(string firstName, string lastName) 

Глядя на объявление функции, легко увидеть, что каждый параметр. В этом случае, firstName и lastName. Однако, когда он вызывается в коде, он менее заметен, особенно если значения параметров не являются самоописательными. например:

FunctionName("Neil","Armstrong") // Fairly obvious 

FunctionName("Bo","Ng") // Not so obvious 

В быстрых параметрах имеются как метки, так и названия. Этикетки есть чисто для ясности, так что код, который вызывает функцию можно прочитать и понять более легко, без необходимости погружаться в ее определение, чтобы полностью понять его

let fullName = funcName(firstName: "Bo", lastName: "Ng") 

В некоторых случаях имя параметра совершенно не нужно , например:

let total = addTwoNumbers(1,2) 

Так метки не являются обязательными, обозначаются подчеркиванием

func addTwoNumbers(_ firstVal:Int,_ secondVal:Int) 

Вообще говоря, вы должны использовать метки, чтобы сделать фу которые вы пишете более четко, если вы не чувствуете, что параметры полностью самоописаны.

 Смежные вопросы

  • Нет связанных вопросов^_^