Pertanyaan Kembalikan beberapa nilai dari fungsi dengan cepat


Bagaimana cara mengembalikan 3 nilai data yang terpisah dari jenis yang sama (Int) dari fungsi dengan cepat?

Saya mencoba mengembalikan waktu, saya harus mengembalikan Jam, Menit, dan Kedua sebagai bilangan bulat terpisah, tetapi semua dalam satu pergi dari fungsi yang sama, apakah ini mungkin?

Saya pikir saya tidak mengerti sintaks untuk mengembalikan beberapa nilai. Ini adalah kode yang saya gunakan, saya mengalami masalah dengan baris terakhir (kembali).

Bantuan apa pun akan sangat dihargai!

func getTime() -> Int
{
    let date = NSDate()
    let calendar = NSCalendar.currentCalendar()
    let components = calendar.components(.CalendarUnitHour | .CalendarUnitMinute | .CalendarUnitSecond, fromDate: date)
    let hour = components.hour
    let minute = components.minute
    let second = components.second
    let times:String = ("\(hour):\(minute):\(second)")
    return hour, minute, second
}

92
2017-12-17 17:18


asal


Jawaban:


Kembalikan tupel:

func getTime() -> (Int, Int, Int) {
    ...
    return ( hour, minute, second)
}

Maka itu dipanggil sebagai:

let (hour, minute, second) = getTime()

atau:

let time = getTime()
println("hour: \(time.0)")

193
2017-12-17 17:22



Juga:

func getTime() -> (hour: Int, minute: Int,second: Int) {
    let hour = 1
    let minute = 2
    let second = 3
    return ( hour, minute, second)
}

Maka itu dipanggil sebagai:

let time = getTime()
print("hour: \(time.hour), minute: \(time.minute), second: \(time.second)")

Ini adalah cara standar bagaimana menggunakannya dalam buku The Swift Programming Language yang ditulis oleh Apple.

atau seperti:

let time = getTime()
print("hour: \(time.0), minute: \(time.1), second: \(time.2)")

itu sama tetapi kurang jelas.


54
2017-07-30 12:21



Anda harus mengembalikan tiga nilai yang berbeda dari metode ini dan mendapatkan tiga ini dalam satu variabel seperti ini.

func getTime()-> (hour:Int,min:Int,sec:Int){
//your code
return (hour,min,sec)
}

dapatkan nilainya dalam satu variabel

let getTime = getTime()

sekarang Anda dapat mengakses jam, menit dan detik hanya dengan "." yaitu.

print("hour:\(getTime.hour) min:\(getTime.min) sec:\(getTime.sec)")

8
2018-06-16 11:57



Swift 3

func getTime() -> (hour: Int, minute: Int,second: Int) {
        let hour = 1
        let minute = 20
        let second = 55
        return (hour, minute, second)
    }

Menggunakan :

let(hour, min,sec) = self.getTime()
print(hour,min,sec)

3
2017-09-04 12:04



//By : Dhaval Nimavat
    import UIKit

   func weather_diff(country1:String,temp1:Double,country2:String,temp2:Double)->(c1:String,c2:String,diff:Double)
   {
    let c1 = country1
    let c2 = country2
    let diff = temp1 - temp2
    return(c1,c2,diff)
   }

   let result = 
   weather_diff(country1: "India", temp1: 45.5, country2: "Canada", temp2:    18.5)
   print("Weather difference between \(result.c1) and \(result.c2) is \(result.diff)")

0
2017-07-12 05:05



Memperbarui Swift 4.1

Di sini kita membuat struct untuk mengimplementasikan penggunaan Tuple dan memvalidasi panjang teks OTP. Itu perlu 2 bidang untuk contoh ini.

struct ValidateOTP {
var code: String
var isValid: Bool }

func validateTheOTP() -> ValidateOTP {
    let otpCode = String(format: "%@%@", txtOtpField1.text!, txtOtpField2.text!)
    if otpCode.length < 2 {
        return ValidateOTP(code: otpCode, isValid: false)
    } else {
        return ValidateOTP(code: otpCode, isValid: true)
    }
}

Pemakaian:

let isValidOTP = validateTheOTP()
    if isValidOTP.isValid { print(" valid OTP") } else {   self.alert(msg: "Please fill the valid OTP", buttons: ["Ok"], handler: nil)
    }

Semoga itu membantu!

Terima kasih


0
2017-07-19 12:26