zoukankan      html  css  js  c++  java
  • 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留言发给我,我看到之后第一时间回复您

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

    
    
    
    
  • 相关阅读:
    例题6-8 Tree Uva548
    例题6-7 Trees on the level ,Uva122
    caffe Mac 安装
    Codeforces Round #467 (Div. 1) B. Sleepy Game
    Educational Codeforces Round37 E
    Educational Codeforces Round 36 (Rated for Div. 2) E. Physical Education Lessons
    Good Bye 2017 E. New Year and Entity Enumeration
    Good Bye 2017 D. New Year and Arbitrary Arrangement
    Codeforces Round #454 D. Seating of Students
    浙大紫金港两日游
  • 原文地址:https://www.cnblogs.com/iOSWinner/p/4295756.html
Copyright © 2011-2022 走看看