zoukankan      html  css  js  c++  java
  • [Swift系列]002-基础语法

    基础语法就那老几样,很快可以说完

    【常量、变量】

    1.变量用 var,系统自动去判断类型,但变量再次赋值需保持数据类型一致

          var  a=50

       相信用过js/java/C#的,对这个var都不陌生

       使用  var  变量名:数据类型  = 变量值 

       这种格式可以指定具体的数据类型,比如要指定float时

       var  x:Float = 12.5

       不这样写,直接var x=12.5,系统默认是double

    2.常量用 let

          let pi=3.14

       常量也可以使用绝对数据类型来定义:

          let x:Double=2

        指定x为值是2的双精

       混合类型常量运算时,需要注意类型转换:   

     let label=“长度是:”
     let width= 30
     let widthLabel= label+String(width)

       常量还可以在字符串中转义,使用“()”

     let apples = 3
     let oranges = 5
     let appleSummary = "I have (apples) apples."
     let fruitSummary = "I have (apples + oranges) pieces of fruit."

    【数组、字典】

    var shoppingList = ["catfish", "water", "tulips", "blue paint"]        
    shoppingList[1] = "bottle of water" var occupations = [ "Malcolm": "Captain", "Kaylee": "Mechanic", ] occupations["Jayne"] = "Public Relations"

    创建空的数组或字典时,因为没法使用后面的值来判断所创建的类型,所以必须使用“初始化语法”

    let emptyArray = String[]()
    let enptyDictionary = Dictionary<String,Float>()

    当变量的数据类型已知时,比如函数参数,可以使用[]或[:]将空的数组或字典赋值给变量

        shoppingList = []

    【流程控制语句】

      基本所有语言都通用,还是那几个,只不过swift做的更绝,把小括号都给省了

    let  individualScores = [67,50,2,74,33]
    var  teamScore = 0
    for score in individualScores{
         if  score  >  50{
              teamScore +=3
          }else {
              teamScore +=1
          }      
    }
    println(teamScore)

    将上面的代码在playground中

    注意:

    if后的条件判断表达式,不能像C那样什么都能放,swift的if后只接受布尔类型表达式(Boolean expression)

    if 和 let 可以用来判断处理可能丢失的值,这种值成为“可选值”(optionals),使用“?”来定义,其中可能有值,也可能为nil

    var opS:String?="Hello"
    opS==nil
    
    var oN:String?="xiaobai"
    var greeting="Hello!"
    if let name=oN{
        greeting="Hello,(name)"
    }
    else
    {
        greeting="Hello,nobody"
    }

    switch 可以判断的不单单再是整形,可以使用任意类型作为条件判断;

    而且当某个case执行完后,不会再进入下面的case,所以省去了break

    在swift中,可以使用for-in来遍历字典数组:

    let interestingNumbers=[
        "Prime":[2,3,5,7,11,13]
        "Fibonacci":[1,1,2,3,5,8]
        "Square":[1,4,9,16,25]
    ]
    var largest=0
    for (kind,numbers) in interestingNumbers{
        for number in numbers{
             if number > largest{
                   largest = number
             }          
        }
    }
    
    println("lagest num:(largest)")

     for循环中,可以使用“..”符号,来指定循环变量的开始和终止,下面两个循环完全相同

     ".."不包含上限,“...”包含上限 

  • 相关阅读:
    fork安全的gettid高效实现
    TCP_DEFER_ACCEPT的坑
    TCP Linger的坑
    Blade和其他构建工具有什么不同
    在Blade中结合gperftools检查内存泄露
    GraphViz web版
    用户场景分析
    java-二维数组——with 刘童格
    java-四则运算-五-网页版--with刘童格
    java-四则运算-四
  • 原文地址:https://www.cnblogs.com/chutianshu1981/p/3779219.html
Copyright © 2011-2022 走看看