首页 > 代码库 > swift 初见-2

swift 初见-2

直接上代码:

// Playground - noun: a place where people can playimport UIKitvar str = "Hello, playground"// 使用if ,switch 来进行条件操作 ,for-in , for ,while ,do-while 进行循环操作// 特点:包裹条件和循环变量括号可以省略,但是语句体的大括号是必须得let scores=[89,79,100,99]var teamSecore=0;  // 换为var teamSecore:Float/Double=0;也会出现同样的错误for score in scores{  // 大括号是必须的    teamSecore+=score}// if语句条件必须是一个布尔表达式// 可以使用if和let 来处理变量,变量可能是具体的值或者nil,表示值缺失.此时在类型后面加一个问号?来标记这个变量的值是可选的var optionalString:String?="hello"var optionalSteing1:String?  optionalString=nil  let name1="hellos"println(optionalString==nil)// 下面这种写法是错误的,想要赋值为空,需要使用“?”来标记// var gender = "男"// gender = nilif let name=optionalString   // 给name 赋值判断name是否为空{    println(name+optionalString!)    println(name==optionalString)}// 数据类型别名定义  熟知的typedef 变为了 typealias typealias kAnd=String  // 作用域在定义之后var num=100;println(kAnd(num))  // 相当于String(num)// let wiseWords = "\"Imagination is more important than knowledge\" - Einstein"println(wiseWords)  //""Imagination is more important than knowledge" - Einstein"var emptyString = "" // empty string literalvar anotherMethod = String() // initializer syntax //  在swift中字符串不是指针,而是实际的值,因此,在Swift中,一个String类型就是一个实际的值,当定义一个新的String,并且将之前的String值拷贝过来的时候,是实际创建了一个相等的新值,而不是仅仅像指针那样指向过去。同样在函数传递参数的时候,也是传递的实际值,并且创建了一个新的字符串,后续的操作都不会改变原有的String字符串。let yenSign: Character = ""// for循环遍历每个字符for character in "Dog!" {    println(character)}for characters in wiseWords{    println(characters)}// 字符串长度的统计,可以使用全局函数countElements可以计算一个字符串中字符的数量,这点与其它语言length有点不同。 let unusualMenagerie = "Koala , Snail , Penguin , Dromedary " println("unusualMenagerie has \(countElements(unusualMenagerie)) characters") //待验证1: 字符串与单个字符,可以使用+,+=操作将字符串和字符串接在一起 (有的说可以但是我试了,有时报错,但有时又没有错??,难道我的编译器有问题???,谁试了可以给个示例,谢谢) var stringAppend=unusualMenagerie+wiseWords  //两个String类型的相加  var aChar:Character="a"

 // stringAppend+=aChar  //这句话在某些情况下是编译正确的,没有报错,但是结果不正确 ,某些情况下报如下错误 ,所以说待验证1的说法很大可能是错误的把

  println(stringAppend)    // 字符串比较使用 ==let quotation = "We‘re a lot alike, you and I."let sameQuotation = "We‘re a lot alike, you and I."if quotation == sameQuotation {    println("These two strings are considered equal")}// 待验证2: 这是其他博客的代码,下面这些代码并没有通过编译啊/*  字符串常量可以包括下面这些特殊字符:  空字符\0,反斜杠\,制表符\t,换行符\n,回车符\r,双引号\”和单引号\’  单字节Unicode字符,\xnn,其中nn是两个十六进制数  双字节Unicode字符,\unnnn,其中nnnn是四个十六进制数  四字节Unicode字符,\Unnnnnnnn,其中nnnnnnnn是八个十六进制数  示例:    let wiseWords = "\"Imagination is more important than knowledge\" - Einstein"    // "Imagination is more important than knowledge" - Einstein    let dollarSign = "\x24" // $, Unicode scalar U+0024    let blackHeart = "\u2665" // ♥, Unicode scalar U+2665    let sparklingHeart = "\U0001F496" // , Unicode scalar U+1F496*//*swift还保留了oc中的前后缀函数hasPrefix和hasSuffix大小写字符串使用uppercaseString 和 lowercaseStringunicode :Swift 支持多种不同的方式取得Unicode字符串.你可以使用for-in语句遍历字符串,来获得每一个字符的Unicode编码值。这个过程已经在字符(Working with Characters)描述过了。或者,下面三个描述中使用合适的一个来获得一个字符串的值UTF-8字符编码单元集合使用String类型的utf-8属性UTF-16字符编码单元集合使用String类型的utf-16属性21位Unicode标量集合使用String类型的unicodeScalars属性*/let testUncode = "Dog!狗"for codeUnit in testUncode.utf8 {    print("\(codeUnit) ")}print("\n")// 68 111 103 33 231 139 151for codeUnit in testUncode.utf16 {    print("\(codeUnit) ")}print("\n")// 68 111 103 33 29399for scalar in testUncode.unicodeScalars {    print("\(scalar.value) ")}print("\n")// 68 111 103 33 29399// 在utf-8中,中文的"狗"占三个字节,而在utf-16 及标量(utf-32)中正好可以一个字节就装得下。// 很多博客中写的是 let   emptyArray = String[]() 这里纠正一下是不正确的的var emptyArray = [String]()emptyArray.insert("哈哈", atIndex:0) //可变数组啊,let 和var 才是决定是否可变的要素println(emptyArray[0])// 不需要指字类型,则数组可以直接使用"[ ]" 字典[:] var otherArray=[]; otherArray.indexOfObject("hello")  // 竟然不会报错,但是这明显是错误的写法啊 println(otherArray) var dic=[:]

上面这些代码是我综合网上的写下来的,有些还需验证,希望路过的指教一下哈.

swift 初见-2