您的位置:首页 > 其它

第一次接触 playground

2016-07-24 17:25 363 查看
(1)ControlFlow

//: Playground - noun: a place where people can play

import UIKit

var str = "Hello, playground"

// if
let scores = [75,44,33,66,12]
var passNum = 0
for score in scores {
if score > 60 {
passNum += 1
}
}

"有\(passNum)个人及格"

//Switch
let feeling = "☺️"
switch feeling{
case "��":
"我很生气"
case "☺️":
"我很开心"
case "��":
"我很悲伤"
default:
"没有感觉"
}

// for in
let studentsScores = ["夏明":[66,67,56,44],"小红":[8,99,86,84],"小张":[100,59,77,66]]
var largestScore = 0
for (name,scores) in studentsScores {
for score in scores {
if score > largestScore {
largestScore = score
}
}
}

"最大的分数是" + largestScore.description

// while
var sum = 1
while sum < 100 {
sum *= 2
}

sum

// ... 和 ..<
sum = 1
for i in 0...6 {
sum *= 2
}

sum

sum = 1
for i in 0..<6 {
sum *= 2
}

sum


(2)EnumAndStruct

//: Playground - noun: a place where people can play

import UIKit

enum Rank: Int {
case Ace = 1
case Two,Three,Four,Five,Six,Seven,Eight,Nine,Ten
case Jack,Queen,King

func simpleDescrption() -> String {
switch self {
case .Ace:
return "ace"
case .Jack:
return "jack"
case .Queen:
return "queen"
case .King:
return "king"
default:
return rawValue.description
}
}
}

var ace = Rank.Three
ace.simpleDescrption()

if let rank = Rank(rawValue: 50) {
rank.simpleDescrption()
} else {
"没有此原始值的Rank"
}

// 枚举,结构体(值类型的) vs 类(引用类型的)
class MyClass {
var name: String
init(name: String){
self.name = name
}
}

let oldClass = MyClass(name: "oldClass")
let newClass = oldClass
newClass.name = "NewClass"
oldClass.name

struct MyStruct {
var name: String
}

let oldStruct = MyStruct(name: "OldStruct")
var newStruct = oldStruct //指向的是不同的地址
newStruct.name = "NewStruct"
oldStruct.name


(3)ProtocolAndExtensions

//: Playground - noun: a place where people can play

import UIKit

protocol Person {
var name: String {
get set
}

func think()
func work()
}

class Xiaoming: Person {
var name = "小明"
func think() {
"想念着小红"
}

func work() {
"写代码"
}
}

// extension 类,结构体,枚举添加方法,计算性属性,下标,构造器
extension Int {
func absoluteValue() -> Int {
return labs(self)
}
}

(-3).absoluteValue()

// 泛型函数
func repeatItem<Item>(item:Item, numberOfTimes:Int) -> [Item] {
var result = [Item]()
for _ in 0..<numberOfTimes {
result.append(item)
}
return result
}

repeatItem(5, numberOfTimes: 3)
repeatItem("ss", numberOfTimes: 3)

// 泛型类型(类、结构体、枚举)
enum OptionValue<ValueType> {
case None
case Some(ValueType)
}

var optInt = OptionValue.Some("555")


(4)SimpleValue

//: Playground - noun: a place where people can play

import UIKit

// let 和 var
var myVar = 42
myVar = 50

let myLet = 42

// 值的类型转换

let implicitInt = 70
let implicitDouble = 70.0
let explicitDouble: Int = 70

let name = "小明"
let age = 7
name + "年龄是" + String(age) + "岁"
name + "年龄是" + age.description + "岁"

// 字符串插值
let apples = 3
let oranges = 5
let appleSummary = "我有\(apples)个苹果"
let fruits = "我有\(apples + oranges)个水果"

// 数组和字典
var goodsArray = ["西红柿","鸡蛋","苹果","香蕉"]
goodsArray[1] = "马铃薯"
goodsArray

var studentsDictionary = ["小明":7,"小红":6,"小张":5]
studentsDictionary["小红"] = 9
studentsDictionary

goodsArray = []
studentsDictionary = [:]

let emptyArray = [String]()
let emptyDictionary = [String:Int]()


(5)ObjectAndClass

//: Playground - noun: a place where people can play

import UIKit

// 类的属性和方法
class Shape {
var name: String
var numberOfSides: Int

init(name:String, numberOfSides:Int){
self.name = name
self.numberOfSides = numberOfSides
}

func simpleDescription() -> String {
return "\(name)有\(numberOfSides)边"
}
}

var shape = Shape(name: "三角形", numberOfSides: 3)
shape.simpleDescription()

// 子类
class Square: Shape {
var sideLength: Double

init(sideLength: Double){
self.sideLength = sideLength
super.init(name: "正方形", numberOfSides: 4)
}

func area() -> Double {
return sideLength * sideLength
}

var perimeter: Double { // 计算性属性,周长
get {
return sideLength * Double(numberOfSides)
}
set {
sideLength = perimeter / Double(numberOfSides)
}
}

override func simpleDescription() -> String {
return super.simpleDescription() + ", 同时该正方形的边长为\(sideLength)"
}
}

var square = Square(sideLength: 40)

square.simpleDescription()
"该正方形的面积是\(square.area())"


(6)FunctionAndClosure

//: Playground - noun: a place where people can play

import UIKit

// 函数的格式
func green(name:String, day:String) -> String {
return "\(name)你好,今天是\(day)"
}

green("小明",day:"星期日")
green("小红", day: "星期一")

// 元组在函数中使用,返回一个元组
func calcuate(scores:[Int]) -> (min:Int, max:Int, sum:Int) {
var min = scores[0]
var max = scores[0]
var sum = 0
for score in scores {
if score > max {
max = score
} else if score < min {
min = score
}
sum += score
}
return (min, max, sum)
}
calcuate([5,30,88,10,44,43])

// 可选参数
func sumOf(numbers:Int...) -> Int {
var sum = 0
for number in numbers {
sum += number
}
return sum
}

sumOf(5,4,3,2,1)

// 闭包和闭包的缩写
var numbers = [6,3,7,4,5]
numbers = numbers.map({ (number) -> Int in
return number * 3
})

numbers

// 闭包的简写方式
numbers = numbers.map {
number in number * 3
}

numbers = numbers.map {
$0 * 3
}
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: