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 }

 

郑重声明:本站内容如果来自互联网及其他传播媒体,其版权均属原媒体及文章作者所有。转载目的在于传递更多信息及用于网络分享,并不代表本站赞同其观点和对其真实性负责,也不构成任何其他建议。