• Swift -1- 简介&简单值&基本类型


    1.简介:

    Swift是供iOS和OS X应⽤用编程的新编程语⾔言,基于C和Objective-C,却没有C的一些兼容约束。Swift采⽤用了安全的编程模式和添加现代的功能来使得编程更加简单、灵活和有趣。界面则基于⼴广受⼈人民群众爱戴的Cocoa和Cocoa Touch框架,展⽰示了软件开发的新⽅方向。

    2.Swift入门 一个新语⾔言的学习应该从打印"Hello, world"开始。在Swift,就是一⾏行:println("Hello, world")

    不同于C语言中的Printf和objective_C,Swift的打印函数为println,并且Swift语言,每一个语句的末尾不需要添加分号作为结束标志,当然,添加也不为错。

    Playground

    允许你编辑代码并⽴立即

    看到结果

    为了达到更好的效果,您可以打开X-code6上的create PlayGroud,来进行操作,Playground允许你编辑代码并⽴立即看到结果。

    3.Swift基本使用

    1.简单值:变量  常量

    1.1使⽤let 来定义常量,var 定义变量。变量的值⽆无需在编译时指定,但是⾄至少要赋值一次。这意味着你以使⽤用变量来命名一个值,你发现只需一次确定,却⽤用在多个地⽅方。

    变量:var

    var myVariable = 42

    myVariable = 50

     

    常量let:

    注:这里的常量定义类似于函数式编程语⾔言中的变量,一次赋值后就⽆无法修改。多多使⽤用有益健康

    let myConstant = 42

    myConstant  = 50 (会报错)

    一个常量或变量必须与赋值时拥有相同的类型。因此你不⽤用严格定义类型。提供⼀一个值就可以创建常量或变量,并让编译器推断其类型。在上⾯面例⼦子中,编译其会推断myVariable是⼀一个整数类型,因为其初始化值就是个整数

    如果初始化值没有提供⾜足够的信息(或没有初始化值),可以在变量名后写类型,以冒号分隔;

    如下: 初始化的时候直接给变量说明为整型

    var item:int = 5; 

    强制类型转换:

     值永远不会隐含转换到其他类型。如果你需要转换⼀一个值到不同类型,明确的构造⼀一个所需类型的实例。        let label = "The width is "

    let width = 94        let widthLabel = label + String(width)

    注:String(width)就是把width常量从整型转换为字符串类型,并且两个字符串变量用加号链接,此时widthLabel的值为"The width is 94".

    拓展:

    有一种更简单的把值转换成字符串的方法:把值写到括号中,并且在括号之前写一个反斜杠。例如:
    let apples = 3
    let oranges = 5
    let appleSummary = "I have (apples) apples."
    let fruitSummary = "I have (apples + oranges) pieces of fruit."
    输入fruitSummary  = "I have 8 pieces of fruit;
    使用()来把一个浮点计算转换成字符串,并加上某人的名字,和他打个招呼。
    使用方括号[]来创建数组和字典,并使用下标或者键(key)来访问元素,类似于OC代码中的X-code的新特性
    var shoppingList = ["catfish", "water", "tulips", "blue paint"]
    shoppingList[1] = "bottle of water"
    var occupations = [
    "Malcolm": "Captain",
    "Kaylee": "Mechanic",
    "Jayne":"Public Relations"
    ]
    occupations["Jayne"] = "Public Relations"
    要创建一个空数组或者字典,使用初始化语法。
    let emptyArray = String[]()
    let emptyDictionary = Dictionary()
    如果类型信息可以被推断出来,你可以用[]和[:]来创建空数组和空字典——就像你声明变量或者给函数
    传参数的时候一样。
    shoppingList = [] // 去逛街并买点东西
     
    基本类型
    一:元组

    格式  

    变量或常量关键字  元组变量 = ( 变量,变量, …)

    说明:

    1: 元组变量还是一个变量,只不过表现方式和其他变量不一样

    2:()括号里面可以放入N个变量组成

    import Foundation
    
    /*
    A是元组变量,()里面放着 整形 和字符串
    
    元组类型为 整形和字符串 组成
    */
    
    var  A = (1,"swift”)//元组变量A 由 整形和字符串 组成
    println(A)

    运行结果

    (1, swift)
    mport Foundation
    
    var B = 12  
    /*
    定义一个元组,元组变量为C , ()里面放 整形变量B 和字符串。
    
    元组类型有 整形 和 字符串组成
    */
    
    var C = (B,"Swift") //元组变量B  由 整形和字符串组成
    println(C)

    运行结果

    元祖访问方式

    1:匿名元组变量来访问

    说明:

     1.1 匿名元组变量和定义好的元组变量参数必须一致

     1.2 需要元组中的个别值,可以使用(_)来忽略不需要的值

    例子(1.1)

    复制代码
    import Foundation
    
    
    var A = (1,"Swift") //元组变量A  由 整形和字符串组成
    
    /*
    
    1: A 是元组变量,由整形和字符串组成
    2:(B,C)是一个匿名元组变量
    3:元组变量A 所对应的值,一一对应赋值给匿名变量。即B =1  C = "Swift"
    
    注意点:
    定义的匿名元组变量个数必须和定义好的元组变量值的个数相同
    
    */
    
    var (B,C) = A
    println("B=(B),C=(C)")
    复制代码

    运行结果

    B=1,C=Swift

    例子 (1.2)

    复制代码
    import Foundation
    
    
    var A = (1,"Swift") //元组变量A  由 整形和字符串组成
    
    /*
    
    1: A 是元组变量,由整形和字符串组成
    2:(_,C)是一个匿名元组变量,其中x下划线(_)代表省略变量
    3:元组变量A 所对应的值,一一对应赋值给匿名变量。即 B="Swfit"
    
    注意点:
    定义的匿名元组变量个数必须和定义好的元组变量值的个数相同
    
    */
    
    var (_,B) = A
    println("B=(B)")
    复制代码

    运行结果:

    B=Swift

    2:通过索引来访问 (与数组访问相似)

    复制代码
    import Foundation
    
    
    var A = (1,"Swift") //元组变量A  由 整形和字符串组成
    
    println(A.0)// A.0 指的是访问 元组变量中的第一个元素 即 1
    println(A.1)// A.1 指的是访问 元祖变量中的第二个元素  即 ”Swift"
    复制代码

    运行结果

    1
    Swift

    3:通过key来访问

    注意点:

     前提是  

    1: 元组变量中变量必须因为字典来访问

    2:访问方式即: 元组变量.key

    复制代码
    import Foundation
    
    /*
     通过key 来访问元组变量 注意点
    1:对应的变量,必须为字典  key: value
    2: 访问的时候,元组变量.key
    */
    
    var  A = (frist:"Hello",second:"swift")
    
    println( A.frist )
    println( A.second )
    复制代码

    运行结果

    Hello
    swift

    二:类型转换

     1:字符串转换为整形 (toInt())

    复制代码
    import Foundation
    
    //字符串转换为Int 类型
    
    var  strA =  "123"
    var  value =  strA.toInt() // toInt 函数是把字符串 转换为整形
    
    println("value=(value)")
    
    
    
    var strB = "12A"
    var value1 = strB.toInt() //toInt 函数是把字符串 转换为整形 其中转换失败值为nil
    
    println("value1=(value1)")
    复制代码

    运行结果

    value=123
    value1=nil
    var  B =  A.toInt() 这个函数 字符串转换为整形 看一下图

    其中 B 为 Int? (可选值) 可以包含整形值和nil
    复制代码
    var  A:Int = 10
    var  A:Int? = 10
    
    不同点:
    var  A:Int? = 10 不仅可以包含整形值,还可以包含nil
    var  A:Int = 10 只能包含整形值
    复制代码

    2:浮点类型转换整形 (Int())

    复制代码
    import Foundation
    
    var  A = 1.10
    
     var B = Int(A) //把浮点类型强制转换为整形
    
    println("B=(B)")
    复制代码

    运行结果

    B=1

    3:整形转换为浮点类型 (Double())

    复制代码
    import Foundation
    
    var  A = 1
    
     var B = Double(A) //整形转换为浮点类型
    var C = Float(A)
    
    println("B=(B) C=(C)")
    复制代码

    运行结果

    B=1.0 C=1.0

    条件语句用法 (if )

    复制代码
    第一种方法  if 布尔值  {}  
    
     注意点 
    
    1: 布尔值等于true 就执行if 里面的方法
    2:{} 不能省略  否则会报错
    
    第二种方法 
    if  可选值   {}
    
    注意点:
    
    1: 可选值不等于nil  就执行if 里面的方法
    2:   {} 不能省略  否则会报错
    
     第三种方法 
    if let  常量值  = 可选值 {}
    
    注意点:
    
    1:if let  常量值  = 可选值  是把 可选值 赋给 常量值,如果常量值不为nil 就执行if 里面的方法
    2:  {} 不能省略  否则会报错
    复制代码

    例子

    第一种方法(if +布尔值)

    复制代码
    import Foundation
    
    
    var A = true
    
    // if 后面 跟bool值 为true的时候执行 if后面的{}的方法
    if A {
        println("A=(A)")
    }
    else{
        println("A")
    }
    复制代码

    运行结果

    A=true

    第二种方法  (if +可选值)

    复制代码
    import Foundation
    
    
    
    // -----------------------------可选值不为nil ----------------
    var  A:Int? = 10
    
    //A 的类型int?(可选类型), 如果A不为nil 就执行 if 中{} 里面的方法
    if A {
        println("A=(A)")
    }
    else{
        println("A=nil")
    }
    
    
    //---------------------------可选择为nil---------------
    
    var B:Int? //B 为可选类型,不赋值 默认为nil  如果B 为nil就不执行 if中{} 的放法
    
    if B {
        println("B=(B)")
    }
    else {
         println("B=nil")
    }
    复制代码

    运行结果

    A=10
    B=nil

    第三中方法 (if  let 常量名 = 可选值)

    复制代码
    import Foundation
    
    
    
    //--------------- if let  可选值不为nil
    var  A:Int? = 10
    
    if let B = A{ //解释 A 的值赋给 B 如果B 不为nil  执行 if {} 中方法
        
        println("B=(B)")
    }
    else{
         println("B=nil")
    }
    
    
    //--------------- if let  可选值为nil
    
    var  C :Int? //C 是可选值 ,不赋值 默认为nil
    
    if let D = C { //解释 C 的值赋给 D 如果D 为nil  不执行 if {} 中方法
            println("D=(D)")
    }
    else{
        println("D=nil")
    }
    复制代码

    运行结果

    B=10
    D=nil

    我回陆续把我学习到swift语言的知识写出来形成一个系列。由于是新语言,个人理解难免有不足,欢迎给我提出意见。也可以加我QQ 1436051108一起讨论,如果您有什么问题,也可以直接在QQ留言发给我,我看到之后第一时间回复您

     最后总结一下。送上一直思维导图,作为文章的结束

    
    
    
    
  • 相关阅读:
    append 注意事项
    列表与字符串转换
    删除列表元素
    段寄存器
    通用寄存器
    最强大的王爽汇编语言学习环境使用教程
    JavaScript获取输入框内容
    ubuntu16.04中将python3设置为默认
    Django之cookie和session
    postman 安装桌面版
  • 原文地址:https://www.cnblogs.com/iOSWinner/p/4295756.html
Copyright © 2020-2023  润新知