Swift tutorial 自学笔记(一):value 和 过程
来源:互联网 发布:下载机械制图软件 编辑:程序博客网 时间:2024/05/17 04:00
此篇是为了以后查资料方便,推荐学习的时候照着 The Swift Programming Language 中 tutorial章节敲一遍代码,对照描述理解透彻。新建工程推荐playground,可以直接看到结果
// Playground - noun: a place where people can playimport UIKitvar str = "Hello, playground"let myConstant:Float = 4let label = "The width is "let width = 94let widthLable = "\(label) + \(width)"var shopingList = []var testDict = [:]var timeTodo = ["myKey":"myValue"]let individualScres = [12,45,52,86,76]var teamScore = 0for score in individualScres{ if score>50{ teamScore += 3 }else{ teamScore += 1 }}teamScore// "?" stands either that type value or nilvar optionalString: Int? = 32optionalString = 56if let name = optionalString{ println(name)}else{ println("is nil")}// switch support anykind of data and and wide wariety of comparison operations// every case has add a break default// let use for match the valuelet vegetable = "red peper"switch vegetable{case "peper": let vegetableComment = "Add some raisins and make ant on a log"case "red pepper","waterCress": let vegetableComment = "hehe"case let x where x.hasSuffix("peper"): let vegetableComment = "I am here"default: let vegetableComment = "EveryThing tastes good in soup"}let interestingNumbers = [ "prime":[2,3,5,7,11,13], "Fibonacci":[1,1,58,65], "Square":[1,4,9,16,25],]var largest = 0for (kind,numbers) in interestingNumbers{ for number in numbers{ if number>largest{ largest = number } }}largestvar n = 2while n<100{ n = n * 2}nvar m = 2do { m = m*m}while(m<200)m// 0 stand for i=0var firstForLoop = 5for i in 0..<7 { firstForLoop += i}firstForLoopfunc greet(name: String, age:Float) -> String { return "Hello,\(name):\(age)"}greet("aiden", 20)// ^ ^ ^ ^ ^ ^ ^ ^ ^ ^ ^ ^ ^ ^ ^ ^ ^ ^ ^ ^ ^ ^ ^ ^ ^ ^ ^ ^ ^ ^//// use closures as return valuefunc calculateStatistics(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)}let result = calculateStatistics([123,54,1,56])result.maxresult.minresult.sum// take arguments from another function, somelike method factoryfunc makeIncrementer() -> (Int -> Int){ func addOne (number: Int) -> Int { return 1 + number } return addOne}var increment = makeIncrementer()increment(98)// function as an argumentfunc lessThenTen (number:Int )-> Bool{ return number < 10}func hasAnyMatches(list:[Int],condition:Int -> Bool)->[Int]{ var lessTen:[Int] = [] for number in list{ if condition(number){ lessTen.insert(number, atIndex: 0) } } return lessTen}var numbers = [20,25,3,7,1,3,5,6,8,9];hasAnyMatches(numbers, lessThenTen)// (number:Int) -> Int is arguments and return type, "in" seperate it and function body// map & sort is nsarray methodnumbers.map({ (number:Int) -> Int in let result = 3 * number return result})let mappedNumbers = numbers.map({number in 3*number})mappedNumberslet sortedNumbers = sorted(mappedNumbers){$0 > $1}sortedNumbers
0 0
- Swift tutorial 自学笔记(一):value 和 过程
- Swift tutorial 自学笔记(二):object,enum,struct
- 自学Swift(一)
- 自学Swift之路(一)
- 从零开始自学Swift(一)
- acegi tutorial 笔记(一)
- Swift自学笔记(1)
- Swift笔记(一)
- ajax自学笔记(一)
- android自学笔记(一)
- java自学笔记(一)
- TUXEDO自学笔记(一)
- TUXEDO自学笔记(一)
- python自学笔记(一)
- QuickServer自学笔记(一)
- Linux自学笔记(一)
- Android自学笔记(一)
- Yii自学笔记(一)
- javascript里面使用el表达式
- 对象与内存控制
- BigDecimal精确
- C++ 库文件包含次序
- 自定义ProgressBar的样式
- Swift tutorial 自学笔记(一):value 和 过程
- Google中国2015校园招聘笔试Round D APAC Test Problem A. Cube IV
- Gradient Descent for Linear Regression,线性回归的梯度下降算法
- bool Phonon::FactoryPrivate::createBackend() phonon backend plugin could not be loaded
- 设计模式C++实现(11)——装饰模式
- 《c程序设计语言》读书笔记-5.3-指针实现strcat
- js中对象创建方式及其优势和不足1
- 内存DC也有视口和窗口的
- I007-黑马程序员_毕向东_Java基础视频教程第01天-07-Hello World