Latest web development tutorials

스위프트 기능

신속한 함수 특정 작업을 별도의 코드 블록을 달성하기 위해 사용된다.

스위프트는 복잡한 목표 - C 언어 스타일의 접근 방식에 대한 간단한 C 스타일의 함수를 표현하기 위해 통합 구문을 사용합니다.

  • 함수 선언 : 컴파일러 함수 이름을 말할 유형 및 매개 변수를 반환합니다.

  • 함수 정의 : 엔티티 기능을 제공.

스위프트 함수는 매개 변수 유형 및 반환 유형을 포함 :


함수 정의

키워드FUNC를 사용하여 신속한 정의 함수.

정의 함수는 하나 이상의 입력 매개 변수 및 리턴 값 유형을 지정할 수있다.

각 기능은 그 기능을 설명하는 기능 이름이 있습니다. 함수 이름의 파라미터 값과 기능 호출 유형. 주문 전달 함수 파라미터는 동일한 파라미터리스트이어야한다.

함수 매개 변수 목록에 전달 된 인수의 순서는 동일해야합니다-> 당신이 함수의 반환 형식을 정의한 후.

문법

func funcname(形参) -> returntype
{
   Statement1
   Statement2
   ……
   Statement N
   return parameters
}

우리 w3big 함수라는 함수, 데이터 형식 문자열 문자열의 반환 값의 매개 변수를 정의 아래 :

import Cocoa

func w3big(site: String) -> String {
    return site
}
print(w3big("www.w3big.com"))

위의 프로그램 실행 출력은 다음과 같습니다

www.w3big.com

함수 호출

우리는 동일해야 순서 파라미터 전달 함수 파라미터리스트의 형태에 대응하는 기능 명 및 파라미터 값을 통해 함수를 호출 할 수있다.

우리가 w3big 함수라는 함수, 매개 변수의 데이터 유형 문자열의 위치를 ​​정의 아래 함수 본체가 직접 데이터 형식이 반환 반환 후, 우리는 전달 함수 인수가 전달 된 String 형의 인수이어야 전화 문자열.

import Cocoa

func w3big(site: String) -> String {
    return site
}
print(w3big("www.w3big.com"))

위의 프로그램 실행 출력은 다음과 같습니다

www.w3big.com

함수 인수

기능 우리는 또한 튜플 (튜플)을 사용하는 기능을하는 하나 이상의 파라미터를 전달할 수있는 하나 이상의 매개 변수를 사용할 수있다 :

import Cocoa

func mult(no1: Int, no2: Int) -> Int {
   return no1*no2
}
print(mult(2, no2:20))
print(mult(3, no2:15))
print(mult(4, no2:30))

위의 프로그램 실행 출력은 다음과 같습니다

40
45
120

매개 변수가없는 함수

우리는 매개 변수없이 함수를 만들 수 있습니다.

구문 :

func funcname() -> datatype {
   return datatype
}

import Cocoa

func sitename() -> String {
    return "本教程"
}
print(sitename())

위의 프로그램 실행 출력은 다음과 같습니다

本教程

함수로 값을 반환 튜플

함수 반환 값 유형은 문자열, 정수, 부동 소수점 유형이 될 수 있습니다.

튜플 배열과 유사한, 차이점은 상기 튜플 요소 괄호를 사용하여 임의의 유형이 될 수있다.

당신은 기능 튜플 (튜플)에서 반환 된 복합 값으로 값의 여러 유형을 가질 수 있습니다.

다음의 예는 명명 된 MINMAX의 정의 (_ ^ 역할 함수 int 배열에서 최소 및 최대 값을 식별한다.

import Cocoa

func minMax(array: [Int]) -> (min: Int, max: Int) {
    var currentMin = array[0]
    var currentMax = array[0]
    for value in array[1..<array.count] {
        if value < currentMin {
            currentMin = value
        } else if value > currentMax {
            currentMax = value
        }
    }
    return (currentMin, currentMax)
}

let bounds = minMax([8, -6, 2, 109, 3, 71])
print("最小值为 \(bounds.min) ,最大值为 \(bounds.max)")

MINMAX는 (_ : 함수는 쿼리에서 함수의 값을 반환 있도록, 그 값이 최소 및 최대로 표시됩니다 이름으로 액세스 할 수 있습니다,이 지능 값의 튜플을 반환합니다.

위의 프로그램 실행 출력은 다음과 같습니다

最小值为 -6 ,最大值为 109

확실 반환 튜플이 전무하지 않아야하는 경우에, 당신은 선택 튜플 형식을 반환 할 수 있습니다.

당신은 (INT, INT)? 아니면 (문자열, 지능, Bool로)로 선택 튜플을 정의하는 닫는 괄호 튜플 타입 후 물음표를 배치 할 수 있습니다?

같은 옵션 튜플 유형 주 (Int, Int)? 튜플과 같은 옵션 유형이 포함 (Int?, Int?) 다른입니다. 옵션 튜플 타입을, 전체 튜플은 선택 사항이며, 단지 각 요소 값 터플.

전면 minMax(_:) 함수는이 포함 반환 Int 값 튜플. 하지만 함수가 들어오는 배열에 보안 검사를 수행하지 않는 array 위에 정의 된 매개 변수가 빈 배열입니다 minMax(_:) 액세스하려고 array[0] 런타임 오류를 트리거합니다.

안전이 "하늘의 배열"문제를 처리하기 위해, minMax(_:) 배열이 비어있을 때 선택 튜플 반환 형식 반환을 사용하여 재 작성 기능 nil :

import Cocoa

func minMax(array: [Int]) -> (min: Int, max: Int)? {
    if array.isEmpty { return nil }
    var currentMin = array[0]
    var currentMax = array[0]
    for value in array[1..<array.count] {
        if value < currentMin {
            currentMin = value
        } else if value > currentMax {
            currentMax = value
        }
    }
    return (currentMin, currentMax)
}
if let bounds = minMax([8, -6, 2, 109, 3, 71]) {
    print("最小值为 \(bounds.min),组大值为 \(bounds.max)")
}

위의 프로그램 실행 출력은 다음과 같습니다

最小值为 -6,组大值为 109

함수의 없음 반환 값 없음

여기 (_ : 함수의 또 다른 버전이, 함수가 반환 형식이 지정되지 않은, 튜토리얼 URL 매개 변수의 공식 웹 사이트를 수신하고, 대신 반환의 직접 출력 문자열 값 w3big된다 :

import Cocoa

func w3big(site: String) {
    print("本教程官网:\(site)")
}
w3big("http://www.w3big.com")

위의 프로그램 실행 출력은 다음과 같습니다

本教程官网:http://www.w3big.com

함수 매개 변수 이름

함수 인수는 외부 매개 변수 이름과 로컬 매개 변수 이름이 있습니다.

로컬 매개 변수 이름

사용하는 내부 구현의 기능에 로컬 매개 변수 이름.

func sample(number: Int) {
   println(number)
}

로컬 변수 이름의 상기 예를 참조는 함수 본문에 사용될 수있다.

import Cocoa

func sample(number: Int) {
   print(number)
}
sample(1)
sample(2)
sample(3)

위의 프로그램 실행 출력은 다음과 같습니다

1
2
3

외부 매개 변수 이름

당신은 공백으로 구분 로컬 매개 변수 이름 앞에 외부 매개 변수 이름을 지정할 수 있습니다, 함수에 전달 된 매개 변수에 대한 외부 매개 변수 이름은 함수가 호출 될 때.

다음과 같은 두 가지 기능 매개 변수 이름을 정의하고 호출 할 수 있습니다 :

import Cocoa

func pow(firstArg a: Int, secondArg b: Int) -> Int {
   var res = a
   for _ in 1..<b {
      res = res * a
   }
   print(res)
   return res
}
pow(firstArg:5, secondArg:3)

위의 프로그램 실행 출력은 다음과 같습니다

125

외부 매개 변수 이름을 제공하는 경우, 다음 함수가 호출 될 때, 외부 매개 변수 이름을 사용해야합니다.


Variable 매개 변수

변수 매개 변수는 0 개 이상의 값을 받아 들일 수 있습니다. 함수가 호출 될 때 함수 인수를 지정하는 변수 매개 변수를 사용할 수 있습니다, 그들의 수는 불확실하다.

변수 유형의 이름으로 변수 매개 변수 (...) 방법으로 정의 할 수 삽입합니다.

import Cocoa

func vari<N>(members: N...){
    for i in members {
        print(i)
    }
}
vari(4,3,5)
vari(4.5, 3.1, 5.6)
vari("Google", "Baidu", "w3big")

위의 프로그램 실행 출력은 다음과 같습니다

4
3
5
4.5
3.1
5.6
Google
Baidu
w3big

상수, 변수 및 I / O 변수

일반적으로 기본 매개 변수 쿼리를 사용할 수있는 유일한 매개 변수, 당신은 그 값을 변경할 수있는 기능에 정의 된 상수 매개 변수입니다.

당신이 변수 매개 변수를 선언하려면이 매개 변수의 값을 변경할 수 있도록, 당신은 앞에 VAR를 추가 할 수 있습니다.

예를 들면 :

func  getName(var id:String).........

이 경우, ID 값이 함수에서 변할 수있다.

일반적으로 기본 매개 변수는 참조에 의해 전달되지 값 호출에 의해 전달됩니다. 그래서 함수 변화 내에 들어오는 파라미터 원래 파라미터에 영향을 미치지 않는다. 그냥이 매개 변수의 복사본을 통과시켰다.

전술 한 바와 같이 변수 패러미터들은 단지 함수 본문에서 변경 될 수있다. 계속 당신이 함수는 매개 변수의 값을 수정할 수 있습니다 싶어, 당신은 함수 호출의 끝에서 이러한 변경을 원하는 경우에, 당신은이 매개 변수를 입력 및 출력 매개 변수로 (인 - 아웃 매개 변수)를 정의 놓아야합니다.

키워드 inout를 추가하기 전에, 입력 및 출력 파라미터, 파라미터의 정의를 정의 할 때. 입력 및 출력 변수의 함수의 값을 통과 한 상기 함수 값이 수정 된 후, 원래의 값을 대체하는 기능을 확산.

import Cocoa

func swapTwoInts(var a:Int,var b:Int){
    
    let t = a
    a = b
    b = t
}

var x = 0,y = 100
print("x = \(x) ;y = \(y)")

swapTwoInts(x, b:y)
print("x = \(x) ;y = \(y)")

위의 프로그램 실행 출력은 다음과 같습니다

x = 0 ;y = 100
x = 0 ;y = 100

수정은 입출력 키워드를 사용하는 것입니다 :

import Cocoa

func swapTwoInts(inout a:Int,inout b:Int){
    
    let t = a
    a = b
    b = t
}

var x = 0,y = 100
print("x = \(x) ;y = \(y)")

swapTwoInts(&x, b:&y)
print("x = \(x) ;y = \(y)")

위의 프로그램 실행 출력은 다음과 같습니다

x = 0 ;y = 100
x = 100 ;y = 0

기능 유형 및 사용

각 기능은 종이의 종류, 기능 매개 변수의 종류의 특정 기능을 가지며 유형을 리턴한다.

func inputs(no1: Int, no2: Int) -> Int {
   return no1/no2
}

다음 예는 다음과 같다 :

import Cocoa

func inputs(no1: Int, no2: Int) -> Int {
    return no1/no2
}
print(inputs(20,no2:10))
print(inputs(36,no2:6))

위의 프로그램 실행 출력은 다음과 같습니다

2
6

함수 위의 지능은 int 형의 값을 반환 매개 변수의 두 가지 유형을 정의합니다.

다음에 우리는 함수는 String 형, String 형의 반환 값의 매개 변수를 정의하고, 다음과 같은 기능을 확인합니다.

Func inputstr(name: String) -> String {
   return name
}

또한 다음과 같이, 함수 매개 변수 및 유형을 정의 할 수 있습니다 :

import Cocoa

func inputstr() {
   print("本教程")
   print("www.w3big.com")
}
inputstr()

위의 프로그램 실행 출력은 다음과 같습니다

本教程
www.w3big.com

사용 기능 유형

신속한 다른 유형의 역할 유형의 사용. 예를 들어, 일정한 또는 입력 기능에 할당 된 적절한 함수의 변수를 정의 할 수있다 :

var addition: (Int, Int) -> Int = sum

해상도 :

"라고 정의 addition 변수, 매개 변수 및 반환 값 유형은이다 Int ,이 새로운 변수를 점하게 sum 기능을."

sumaddition 동일한 타입이, 상기 동작은 법적.

지금, 당신은의 할당 함수를 호출 할뿐만 아니라 사용할 수 있습니다 :

import Cocoa

func sum(a: Int, b: Int) -> Int {
   return a + b
}
var addition: (Int, Int) -> Int = sum
print("输出结果: \(addition(40, 89))")

위의 프로그램 실행 출력은 다음과 같습니다

输出结果: 129

매개 변수 유형으로 기능 유형, 반환 유형으로 기능 유형

우리는 다른 매개 변수에 대한 매개 변수로 작동 할 수 있습니다 :

import Cocoa

func sum(a: Int, b: Int) -> Int {
    return a + b
}
var addition: (Int, Int) -> Int = sum
print("输出结果: \(addition(40, 89))")

func another(addition: (Int, Int) -> Int, a: Int, b: Int) {
    print("输出结果: \(addition(a, b))")
}
another(sum, a: 10, b: 20)

위의 프로그램 실행 출력은 다음과 같습니다

输出结果: 129
输出结果: 30

중첩 된 기능

중첩 함수 내의 새 기능의 정의를 지칭 외부 기능 함수 정의 내의 함수를 호출 할 수있다.

다음 예는 다음과 같다 :

import Cocoa

func calcDecrement(forDecrement total: Int) -> () -> Int {
   var overallDecrement = 0
   func decrementer() -> Int {
      overallDecrement -= total
      return overallDecrement
   }
   return decrementer
}
let decrem = calcDecrement(forDecrement: 30)
print(decrem())

위의 프로그램 실행 출력은 다음과 같습니다

-30