tipos programacion parametros parametro opcional metodos funciones for externos datos function swift return

function - programacion - Devuelve múltiples valores de una función en swift



tipos de datos en swift (6)

Actualizar Swift 4.1

Aquí creamos una estructura para implementar el uso de Tuple y validar la longitud del texto OTP. Eso debe ser de 2 campos para este ejemplo.

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) } }

Uso:

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

¡Espero eso ayude!

Gracias

¿Cómo devuelvo 3 valores de datos separados del mismo tipo (Int) de una función en swift?

Estoy intentando devolver la hora del día, necesito devolver la hora, el minuto y el segundo como números enteros separados, pero todo de una vez desde la misma función, ¿es esto posible?

Creo que simplemente no entiendo la sintaxis para devolver múltiples valores. Este es el código que estoy usando, estoy teniendo problemas con la última línea (retorno).

Cualquier ayuda sería muy apreciada!

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 }


Devuelve una tupla:

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

Luego se invoca como:

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

o:

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


También:

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

Luego se invoca como:

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

Esta es la forma estándar de cómo usarlo en el libro The Swift Programming Language escrito por Apple.

o simplemente como:

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

Es lo mismo pero menos claro.


debe devolver tres valores diferentes de este método y obtener estos tres en una sola variable como esta.

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

obtener el valor en una sola variable

let getTime = getTime()

ahora puede acceder a la hora, minutos y segundos simplemente con "." es decir.

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


Swift 3

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

Usar :

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


//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)")