Swift语言基础笔记(二)

来源:互联网 发布:软路由没有wan端口 编辑:程序博客网 时间:2024/05/16 02:01

接上一篇: Swift语言基础笔记(一)介绍了整形、浮点型、布尔类型,这篇接着介绍下字符、字符串、元组、可选型等类型。

字符和字符串的使用

//: Playground - noun: a place where people can playimport UIKitvar str = "Hello, playground"//以字符形式打印for c in str.characters{    print(c)}//初始化空字符串var emptyStr = "";var anotherEmptyStr = String();str.uppercaseString;str.lowercaseString;str.capitalizedString;str.containsString("Hello");str.hasPrefix("He");str.hasSuffix("und");let s = "one third is \(1.0/3.0)";//NSString的使用,它不是产unicode码,如中文处理不好。//保留两位小数,占位符的使用,并转换为Stringlet s2: String = NSString(format: "one third is %0.2f", 1.0/3.0) as String;let s3: NSString = "one third is 0.33";//从第几个开始,前闭后开s3.substringFromIndex(2);//从0开始到指定值前一个s3.substringToIndex(5);s3.substringWithRange(NSMakeRange(4, 5));let dog: Character = "

元组的使用

//元组 Tuple,多种基本类型的组合。var point = (5, 9);var httpResponse = (404, "Not find");var point2:(Int, Int, Float) = (2, 4, 8.0);var httpResponse2:(Int, String) = (200, "OK");var (statusCode, statusMessage) = httpResponse;statusCode = 200;statusMessage;point.0;point.1;point2.2;let point3 = (first: 3, second: "hello");point3.first;point3.secondlet point4: (ff: Int, ee:Int) = (4, 9);point4.ee;point4.ff;let loginResult = (false, "deng");let (isLoginSuccess, _) = loginResult;if isLoginSuccess{    print("Login success");}else{    print("Login failed");}print(point4.ff, point4.ee, isLoginSuccess , "swift", separator:", ", terminator:"?");print("hello");print("\(point4.ff) * \(point4.ee) = \(point4.ff * point4.ee)");
可选型
可选型中有一个不得不提的关键字nil,它代表一种类型,也是空的意思,只有显式声明为可选型时才能赋值为nil,可选型的声明是类型后加一个?号,或加!号声明隐式可选型。

optional是Swift新加入的类型,其它语言也没有这种类型,可简单理解为:有值时就是?前面的类型,无值时就是nil。

//: Playground - noun: a place where people can playimport UIKit//可选型var errorCode: Int? = 404;errorCode = 0;errorCode = nil;var color:UIColor? = nil;let imInt = 405;errorCode = imInt;print(errorCode);var error:String? = "405";print(error);//可选型的解包"The errorCode is " + error!;if error != nil{   "The errorCode is " + error!;}else{    "No error";}if let unWrappedErrorCode = error{    "The errorCode is " + unWrappedErrorCode;}//解包可以几条命令放一起,用逗号分开var errorMessage:String? = "Not found";if let error = error,       errorMessage = errorMessage{    "The errorCode is " + error + "\n The errorMessage is " + errorMessage;}if let error = error,    errorMessage = errorMessage where error == "405"{        print("Page not found");}
可选型的应用
//: Playground - noun: a place where people can playimport UIKit//可选型的应用var errorMessage:String? = "Not Found";if let errorMessage = errorMessage{    errorMessage.uppercaseString;}//先判断errorMessage是否为nil,如果不是就执行后面的方法errorMessage?.uppercaseString;//errorMessage!.uppercaseString;var uppercaseErrorMessage = errorMessage?.uppercaseString;if let errorMessage = errorMessage?.uppercaseString{    errorMessage;}var error: String? = nil;var error2: String? = "407";let message: String;if let error = error{    message = error;}else{    message = "No error";}let message2 = error2 == nil ? "No error" : error2;let message3 = error ?? "No error";
可选型在元组中的应用

//: Playground - noun: a place where people can playimport UIKit//可选型在元组中的应用var error: (errorCode: Int, errorMessage: String?) = (404, "No Found");error.errorMessage = nil;error;//error = nil;var error2: (errorCode: Int, errorMessage: String)? = (404, "No Found");//error2.errorCode = 48;error2 = nil;var error3: (errorCode: Int, errorMessage: String?)? = (404, "No Found");//可选型的实际应用var ageInput: String = "dzt";var age = Int(ageInput);var a: String = "16";var aa = Int(a);if let aa = Int(a) where aa < 20{    print("You're a teenager")}var greetings = "Hello"greetings.rangeOfString("ll")greetings.rangeOfString("oo")//隐式可选型//在类型后加!是定义隐式可选型,不需要解包也可以使用var error1: String! = nilerror1 = "Not Found""The message " + error1
隐式可选型的应用

//: Playground - noun: a place where people can playimport UIKit//隐式可选型的应用class City {    let cityName: String    unowned var country: Country    init(cityName:String, country: Country){        self.cityName = cityName        self.country = country    }}class Country {    let countryName: String    var capitalCity: City!  //定义为隐式可选型,在初始化时赋值        init(countryName: String, capitalCity: String){        self.countryName = countryName;        self.capitalCity = City(cityName: capitalCity, country: self)    }        func showInfo(){        print("This is \(countryName)")        print("The capital is \(capitalCity.cityName)")    }}let china = Country(countryName: "China", capitalCity: "Beijing")china.showInfo()

1 0
原创粉丝点击