신속하게 함수에서 동일한 유형 (Int)의 3 개의 개별 데이터 값을 어떻게 반환합니까?
하루 중 시간을 반환하려고하는데시, 분 및 초를 별도의 정수로 반환해야하지만 모두 동일한 기능에서 한 번에 가능합니까?
여러 값을 반환하는 구문을 이해하지 못한다고 생각합니다. 이것은 내가 사용하는 코드이며 마지막 (반환) 줄에 문제가 있습니다.
어떤 도움이라도 대단히 감사하겠습니다!
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)")
이것은 애플이 쓴 The Swift Programming Language 책에서 그것을 사용하는 표준 방법입니다.
또는 그냥 :
let time = getTime()
print("hour: \(time.0), minute: \(time.1), second: \(time.2)")
동일하지만 덜 명확합니다.
답변
이 메소드에서 세 가지 다른 값을 반환하고이 세 가지를 단일 변수로 가져와야합니다.
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)")
답변
스위프트 3
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)
답변
스위프트 4.1 업데이트
여기에서 Tuple 사용법을 구현하고 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)")