2016-01-06 19 views
5

Trong test1(), nó có thể trả về Void được trả về bởi test() thành công. Nhưng trong test2(), lỗi ném. Tại sao?Tại sao tôi không thể trả về Void trực tiếp trong hàm

//: Playground - noun: a place where people can play 

import UIKit 
import AVFoundation 

func test()->Void{ 
    print("Hello") 
} 

func test1(){//print Hello 
    return test() 
} 

func test2(){// throw error 
    return Void 
} 

Trả lời

7

Void là loại nên không thể trả lại. Thay vào đó bạn muốn trả về biểu diễn của Void, đó là một tuple rỗng.

Vì vậy, hãy thử này để thay thế, và điều này sẽ biên dịch:

func test()->Void{ 
    print("Hello") 
} 

func test1(){//print Hello 
    return test() 
} 

func test2()->Void{// throw error 
    return() 
} 

test1() 

Để biết thêm thông tin về lý do tại sao một tupple trống có thể được trả lại trong một chức năng mà hy vọng sẽ trở lại loại Void, tìm kiếm khoảng trống trong đường dẫn sau : https://developer.apple.com/library/ios/documentation/Swift/Conceptual/Swift_Programming_Language/Functions.html

1

Trong test1() bạn không trả về Void, hàm trả về của bạn là hàm test() trả về void;

void function test(){ 
    print("Hello"); 
} 

void function test1(){ 
     //print Hello 
    return test(); 
} 

/* you can not return a type 
    func test2(){// throw error 
      return Void; 
    } */ 

void function test2(){ 
     //code or not 
     return test(); //calling test function returns void. 
} 

Tôi hy vọng điều này sẽ hữu ích!

Các vấn đề liên quan