首页 > 代码库 > swift基本数据类型

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中的Character100 //  String 中的每个字符都是单个的 Unicode 字符101 for character in "abcdef"{102     println(character)103 }104 105 // 7.4 计算字符串中字符个数 countElements106 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 = 3114 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, hasSuffix124 var hasPrefix: Bool = stringPlusString.hasPrefix(string1)125 126 // 7.8 大小写转换127 let upper = string1.uppercaseString128 let lower = upper.lowercaseString129 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-8137 // 通过字符 UTF8View 类型的 utf8 属性 获得字符的 utf8 表示138 let dog = "Dog!"139 for codeUnit in dog.utf8{140     print(codeUnit)141 }142 // UTF-16143 for codeUnit in dog.utf16{144     print(codeUnit)145 }146 // Unicode Scalars147 // 通过字符 UnicodeScalarView 类型的 unicodeScalars 属性 获得字符的 UnicodeScalar 表示148 for scalar in dog.unicodeScalars{149     print(scalar)150 }

 

swift基本数据类型