首页 > 代码库 > [Swift系列]002-基础语法

[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循环中,可以使用“..”符号,来指定循环变量的开始和终止,下面两个循环完全相同

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