swift基本数据类型
1 // Playground - noun: a place where people can play 2 3 import UIKit 4 //----------------------------------------------------------------------- 5 //1.字符串输出 6 var str = "world" 7 println("hello, \(str)") 8 9 //----------------------------------------------------------------------- 10 //2.类型别名 11 typealias audioSample = UInt16 12 13 //----------------------------------------------------------------------- 14 //3.元祖 tuples 15 // 定义方式1 16 let http404Error = (404, "Not Found") 17 let (statusCode, statusMessage) = http404Error 18 let (justTheStatusCode, _) = http404Error //只有一个值 19 20 // 定义方式2 21 let http200Status = (statusCode: 200, descirption: "OK") 22 23 // 访问方式1 24 println("\(statusCode), \(statusMessage)") 25 26 // 访问方式2 27 println("\(http404Error.0), \(http404Error.1)") 28 29 // 访问方式3 30 println("\(http200Status.statusCode), \(http200Status.descirption)") 31 32 //----------------------------------------------------------------------- 33 //4 可选值 Optionals 34 //可选值表示要么是某个值,要没什么也没有 35 let possibleNumber = "123" 36 var surveyAnswer : String?//默认为nil 37 let converedNumber = possibleNumber.toInt()//converedNumber为可选值 38 39 //可选值绑定 Optional Binding 40 if let actualNumber = converedNumber { 41 println("\(possibleNumber) 有数字 \(actualNumber)") 42 }else{ 43 println("\(possibleNumber) 不能被转换为整形") 44 } 45 46 //4.1 nil 47 // Object-C: nil表示一个指针,它指向一个不存在的对象 48 // swift: nil表示某种类型的值,任何可选值类型和对象类型都可以设为nil 49 50 //4.2 暗解包可选值 Implicity Unwrapped Optionals 51 //每次使用都要解包 52 let possibleString: String? = "An optional string." 53 println(possibleString!) 54 55 //无论是否被使用,都自动解包 56 let assumeString: String! = "An implicitly unwrapped optional string." 57 println(assumeString) 58 59 //----------------------------------------------------------------------- 60 //5 断言 Assertions 61 //断言在运行时检查某种情况是否为真,为真后面代码继续执行,为假后面代码不再执行, 62 let age = 3 63 assert(age >= 0, "age cannot be less than 0") 64 65 //----------------------------------------------------------------------- 66 //6 基本操作符 67 //6.1 范围操作 Range Operators 68 //6.1.1 闭区间 Closed Range Operator (a...b),即数学上的[a, b] 69 for index in 1...5 { 70 println("\(index) times is \(5*index)") 71 } 72 //6.1.2 半包半闭区间 Half-Closed Range Operator (a..b), 即[a, b) 73 //for index in 1..5 { 74 // println("\(index) times is \(5*index)") 75 //} 76 77 //----------------------------------------------------------------------- 78 //7. 字符串字面值 String Literals 79 var emptyString = String() 80 if emptyString.isEmpty{ 81 } 82 83 //7.1 转义字符 84 /** 85 * \0 空字符 86 * \\ 反斜线 87 * \t 水平tab 88 * \n 换行 89 * \r return 90 * \" 双引号 91 * \‘ 单引号 92 */ 93 94 // 7.2 swift 中字符串是值类型 Value Types 95 // 将字符串传递给函数时,或者用一个字符串给另一个字符串赋值时,传递的是字符串值的拷贝,而不是字符串的地址或引用。一个新的字符串的副本被创建了,这个新创建的副本而不是原字符串,传递给函数或其他字符串。这个副本的创建是懒加载的,必要时才会创建,所以效率很高。 96 97 // 注意这点与 Cocoa 中 NSString 的不同,NSString传递的是引用。 98 99 // 7.3 遍历String中的Character 100 // String 中的每个字符都是单个的 Unicode 字符 101 for character in "abcdef"{ 102 println(character) 103 } 104 105 // 7.4 计算字符串中字符个数 countElements 106 let string = "abcdef" 107 println(countElements(string)) 108 109 // 7.5 字符串连接 110 let string1 = "hello" 111 let string2 = "world" 112 let character1: Character = "!" 113 let multipier = 3 114 115 let stringPlusString = string1 + " " + string2 + String(character1) 116 let message = "\(multipier * 2) times \(stringPlusString)" 117 118 // 7.6 字符串比较 119 if string1 == string2{ 120 println("\(string1) 与 \(string2) 在相同的位置包含相同的字符") 121 } 122 123 // 7.7 hasPrefix, hasSuffix 124 var hasPrefix: Bool = stringPlusString.hasPrefix(string1) 125 126 // 7.8 大小写转换 127 let upper = string1.uppercaseString 128 let lower = upper.lowercaseString 129 130 // 7.9 Unicode编码 131 132 // Unicode 是一种国际编码,它可以通过标准的格式,表示任何语言的任何字符。在Unicode中,任何字符都能通过一个或多个unicode scalars(scalars: 标量,即非向量,只有数值大小,没有方向)表示。一个unicode标量是一个唯一的21-bit的number(或name),比如U+0061表示 LOWERCASE LATIN LETTER A ("a")。 133 134 // Swift 的 String 和 Character 完全兼容 Unicode 编码,它支持一系列不同的Unicode编码 135 136 // UTF-8 137 // 通过字符 UTF8View 类型的 utf8 属性 获得字符的 utf8 表示 138 let dog = "Dog!" 139 for codeUnit in dog.utf8{ 140 print(codeUnit) 141 } 142 // UTF-16 143 for codeUnit in dog.utf16{ 144 print(codeUnit) 145 } 146 // Unicode Scalars 147 // 通过字符 UnicodeScalarView 类型的 unicodeScalars 属性 获得字符的 UnicodeScalar 表示 148 for scalar in dog.unicodeScalars{ 149 print(scalar) 150 }
郑重声明:本站内容如果来自互联网及其他传播媒体,其版权均属原媒体及文章作者所有。转载目的在于传递更多信息及用于网络分享,并不代表本站赞同其观点和对其真实性负责,也不构成任何其他建议。