swift基本データ型と構文

2864 ワード

1.playgroundは新しいファイルタイプで、swiftコードをテストし、サイドバーに結果を表示します.
2. Variables vs. Constants
declare Constants keyword: let
declare Variables keyword: var
3. Explicit vs. Inferred Typing
Explicit typing: 
let tutorialTeam: Int = 56

Inferred typing: 
let tutorialTeam = 56   //  

4.SwiftのBasic TypeとControl flow
FloatsとDoubles
let priceInferred = 19.99
let priceExplicit: Double = 19.99

Note:Doubleは精度が高く、デフォルトのInferred typing
Bools
let onSaleInferred = true
let onSaleExplicit: Bool = false

Strings
let nameInferred = "Whoopie Cushion"
let nameExplicit: String = "Whoopie Cushion"

Note:Objective-Cのように@記号は使わない
If構文とStringsの変更
if onSaleInferred {
  println("\(nameInferred) on sale for \(priceInferred)!")
} else {
  println("\(nameInferred) at regular price: \(priceInferred)!")
}

5.ClassesとMethods
// 1
class TipCalculator {

  // 2 
  let total: Double
  let taxPct: Double
  let subtotal: Double
  
  // 3   , 
  init(total:Double, taxPct:Double) {
    self.total = total    
    self.taxPct = taxPct     //  , self 
    subtotal = total / (taxPct + 1)
  }
  
  // 4
  func calcTipWithTipPct(tipPct:Double) -> Double {
    return subtotal * tipPct  
  }
  
  // 5
  func printPossibleTips() {
    println("15%: \(calcTipWithTipPct(0.15))")
    println("18%: \(calcTipWithTipPct(0.18))")
    println("20%: \(calcTipWithTipPct(0.20))")
  }
}

// 6
let tipCalc = TipCalculator(total: 33.25, taxPct: 0.06)
tipCalc.printPossibleTips()

以上のコードをplaygroundファイルに入れ、Show Assistant Editorをクリックして結果を表示します.
6.ArrayとFor loop
an array of doubles:
let possibleTipsInferred = [0.15, 0.18, 0.20]
let possibleTipsExplicit:Double[] = [0.15, 0.18, 0.20]

arrayの各項目を列挙し、迅速に列挙する
for possibleTip in possibleTipsInferred {
  println("\(possibleTip*100)%: \(calcTipWithTipPct(possibleTip))")
}

OR
for i in 0..possibleTipsInferred.count {
  let possibleTip = possibleTipsInferred[i]
  println("\(possibleTip*100)%: \(calcTipWithTipPct(possibleTip))")
}

7. Dictionaries
// 1
func returnPossibleTips() -> Dictionary<Int, Double> {   
  let possibleTipsInferred = [0.15, 0.18, 0.20]
  let possibleTipsExplicit:Double[] = [0.15, 0.18, 0.20]   
  
  // 2
  var retval = Dictionary<Int, Double>()
  for possibleTip in possibleTipsInferred {
    let intPct = Int(possibleTip*100)
    
    // 3
    retval[intPct] = calcTipWithTipPct(possibleTip)
  }
  return retval
 }

TipCalculatorクラスの後に呼び出されます.
tipCalc.returnPossibleTips()