• swift 初见-2


    直接上代码:

    // Playground - noun: a place where people can play
    
    import UIKit
    
    var 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 = nil
    if 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 literal
    var 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: 这是其他博客的代码,下面这些代码并没有通过编译啊
    /*
      字符串常量可以包括下面这些特殊字符:
      空字符,反斜杠,制表符	,换行符
    ,回车符
    ,双引号”和单引号’
      单字节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 和 lowercaseString
    unicode :
    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("
    ")
    // 68 111 103 33 231 139 151
    
    for codeUnit in testUncode.utf16 {
        print("(codeUnit) ")
    }
    print("
    ")
    // 68 111 103 33 29399
    
    for scalar in testUncode.unicodeScalars {
        print("(scalar.value) ")
    }
    print("
    ")
    // 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=[:]

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

  • 相关阅读:
    PHP保留两位小数的几种方法
    解决PHP下载大文件失败,并限制下载速度
    MySQL索引
    商城商品部分-数据表创建
    string 函数
    array函数
    BTREE这种Mysql默认的索引方式,具有普遍的适用性
    mysql索引类型 normal, unique, full text
    typedef的意义和函数指针
    35. 搜索插入位置-7月17日
  • 原文地址:https://www.cnblogs.com/lovelifeloveme/p/4058053.html
Copyright © 2020-2023  润新知