Swiftの関数から同じタイプ(Int)の3つの別個のデータ値を返すにはどうすればよいですか?
時刻を返そうとしていますが、Hour、Minute、Secondを別々の整数として返す必要がありますが、同じ関数からすべてを一度に実行できますか?
複数の値を返すための構文を理解していないと思います。これは私が使用しているコードです、私は最後の(戻り)行に問題があります。
どんな助けも大歓迎です!
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
}
タプルを返す:
func getTime() -> (Int, Int, Int) {
...
return ( hour, minute, second)
}
次に、次のように呼び出されます。
let (hour, minute, second) = getTime()
または:
let time = getTime()
println("hour: \(time.0)")
また:
func getTime() -> (hour: Int, minute: Int,second: Int) {
let hour = 1
let minute = 2
let second = 3
return ( hour, minute, second)
}
次に、次のように呼び出されます。
let time = getTime()
print("hour: \(time.hour), minute: \(time.minute), second: \(time.second)")
これは、Appleによって書かれたThe Swift Programming Languageの本で使用する標準的な方法です。
または次のように:
let time = getTime()
print("hour: \(time.0), minute: \(time.1), second: \(time.2)")
同じですが、それほど明確ではありません。
このメソッドから3つの異なる値を返し、この3つの値をこのような単一の変数で取得する必要があります。
func getTime()-> (hour:Int,min:Int,sec:Int){
//your code
return (hour,min,sec)
}
単一変数の値を取得
let getTime = getTime()
これで、「。」で時間、分、秒にアクセスできます。すなわち。
print("hour:\(getTime.hour) min:\(getTime.min) sec:\(getTime.sec)")
Swift
func getTime() -> (hour: Int, minute: Int,second: Int) {
let hour = 1
let minute = 20
let second = 55
return (hour, minute, second)
}
使用するには:
let(hour, min,sec) = self.getTime()
print(hour,min,sec)
更新Swift 4.1
ここでは、タプルの使用法を実装し、OTPテキストの長さを検証する構造体を作成します。この例では、2つのフィールドが必要です。
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)
}
}
使用法:
let isValidOTP = validateTheOTP()
if isValidOTP.isValid { print(" valid OTP") } else { self.alert(msg: "Please fill the valid OTP", buttons: ["Ok"], handler: nil)
}
それが役に立てば幸い!
ありがとう
//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)")