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
- Swift语言基础笔记(二)
- Swift语言基础(二)
- swift笔记--基础(二)
- swift语言基础(二)流程控制
- Swift语言学习笔记(二)
- Swift语言基础笔记(一)
- Swift语言基础笔记(三)
- Swift语言基础笔记(四)
- Swift基础(二)
- Swift语言指南(二)基础操作符
- Swift 笔记(二)
- Java语言基础学习笔记(二)
- Swift专栏:Swift基础入门(二)
- Swift 语言面面观(二)
- Swift 语言基础(一)
- swift基础语法(二)
- SWIFT基础语法(二)
- swift基础回顾 (二)
- C#基本知识 -- App.config文件的配置与读取
- 【Android】Android的NDK方法使用结构脑图
- mysql中You can’t specify target table for update in FROM clause错误解决方法
- Android系统信息获取 之九:TelephonyManager类
- dubbo/zookeeper初识
- Swift语言基础笔记(二)
- CALayer
- JSTL标签
- php基础(二)
- Android系统信息获取 之十:移动网络相关信息获取
- 怎样优化电商购物流程?
- WebSocket对象的“readyState”属性记录连接过程中的状态值
- 用户与内核空间数据交换的方式(3)-seq_file
- Codeforces Round #368 (Div. 2) D. Persistent Bookcase(可持久化)