《论语·卫灵公》有一段经典对白:『子贡问为仁。子曰:工欲善其事,必先利其器。

……』。

对于一个程序猿来说,好的工具不意味着一定能产生优质的代码。可是好的工具对提升开发效率的作用还是不言而喻的。想要用Swift做iOS开发。唯一可选的利器就是Xcode6了,童鞋们可以从以下的站点获得Xcode6的下载链接,在此页面中还可以找到Swift的官方书籍、例子代码和视频。

Xcode6下载:https://developer.apple.com/swift/resources/

接下来我们能够開始创建一个项目Swift01,如图所看到的:

以上看到的就是入门程序『Hello, World』。

接下来要做的就是能够通过构建整个项目或者直接通过执行项目并在控制台中查看结果,例如以下图所看到的:

好了,一切就这么简单。可是我们要讲的肯定不是Hello World那么简单,通过以下的代码先对Swift有个感性的认识吧。

import Foundationvar a:Int = 123   // 定义Int类型的变量a
let b = 321       // 定义常量b通过类型判断为Intprintln("\(a) + \(b) = \(a + b)")   // 字符串中的\()能够放变量、常量、表达式// 输出:123 + 321 = 444// 从1加到100求和
var sum = 0
for var i = 1; i <= 100; ++i {      // for循环sum += i
}
println("SUM = \(sum)")             // 输出:SUM = 5050for ch in "hello" {                 // 对hello的每一个字符进行循环println(ch)
}var randomAge = arc4random() % 50   // 调用Foundation中的函数产生随机数
print("You're \(randomAge) years-old! ")
var myAge:UInt32 = 33;
if randomAge > myAge {              // if-else分支结构println("Older than me!")
}
else {println("Younger than me!")
}// 依据如今的系统时间显示提示语
// [吐槽]时间日期的操作在苹果的编程语言里面真麻烦
var currDate = NSDate()                                         // 创建时间日期对象
var myCal = NSCalendar(calendarIdentifier:NSGregorianCalendar)  // 创建日历对象(阳历[格里高利历])
// 以下两行代码取出当前时间日期的小时部分
var myComp:NSDateComponents = myCal.components(NSCalendarUnit.HourCalendarUnit, fromDate:currDate)
var hour = myComp.hourswitch hour {
case 7, 8:println("Enjoy your breakfast!")
case 11, 12, 13:println("Have a good lunch!")
case 18, 19:println("It's a good time for dinner!")
default:println("Do something to make yourself happy.")
}var myArray:Int[] = [12, 35, 96, 47, 5, 23, 68]
myArray += [32, 81]
println(myArray)    // 输出: [12, 35, 96, 47, 5, 23, 68, 32, 81]// 定义找出数组中最大和最小元素的函数
// 声明函数的keyword是func, findMaxAndMin是函数名
// 函数名后的()中是參数列表, 其參数是Int型的数组,
// 返回值是一个元组(包括多个数据的复合值), 包括两个整数
// 函数的返回值是在函数參数列表后的->之后指定其类型的
func findMaxAndMin(x:Int[]) -> (Int, Int) {var min:Int = x[0]var max:Int = x[0]for var index = 1; index < x.count; ++index {if x[index] > max { max = x[index] }else if x[index] < min { min = x[index] }}return (min, max)
}println(findMaxAndMin(myArray))     //输出: (5, 96)// 定义一个字典类型(键值对映射)
var myDic = [1001:"Apple", 1002:"Banana", 1003:"Grape"]
for (no, name) in myDic {println("key = \(no), value = \(name)")
}
myDic[1003] = "Strawberry"
println(myDic)         // 输出: [1001: Apple, 1002: Banana, 1003: Strawberry]
var myFruit1 = myDic[1002]  // Banana
var myFruit2 = myDic[2001]  // nilif myFruit2 == nil {println(myFruit1)
}
else {println(myFruit2)
}// 将函数作为函数的參数(Lambda函数)
func repeat(count:Int, callback: () -> ()) {for i in 0..count {callback();}
}// 调用repeat函数输出10次Hello, world!
repeat(10, { println("Hello, world!") })

转载于:https://www.cnblogs.com/liguangsunls/p/7273682.html

Swift开发图解入门相关推荐

  1. 《iOS9开发快速入门》——导读

    本节书摘来自异步社区<iOS9开发快速入门>一书中的目录,作者 刘丽霞 , 邱晓华,更多章节内容可以访问云栖社区"异步社区"公众号查看 目 录 前 言 第1章 iOS ...

  2. Swift教程Swift语言快速入门(内部资料)

    Swift语言快速入门(内部资料) 试读下载地址:http://pan.baidu.com/s/1eQCGRHw 前言Swift教程Swift语言快速入门(内部资料)Swift教程Swift语言快速入 ...

  3. Swift语言快速入门

    Swift语言快速入门(首部同步新版官方API文档和语法的Swift图书,确保代码可编译,作者专家在线答疑,图书勘误实时跟进) 极客学院 编著   ISBN 978-7-121-24328-8 201 ...

  4. Swift语言高速入门

    Swift语言高速入门(首部同步新版官方API文档和语法的Swift图书,确保代码可编译,作者专家在线答疑,图书勘误实时跟进) 极客学院 编著   ISBN 978-7-121-24328-8 201 ...

  5. 前端开发从入门到进阶完全指南,不用再迷茫前端要怎么学啦!

    我经常会看到很多同学在学习前端的时候比较迷茫,不知道到底应该以怎样的学习路线来入门和进阶前端领域.每次遇到这种问题我也会分享一下自己的学习经验,但是发现这是一个问得非常多的一个共性问题. 作为程序员, ...

  6. Swift 语言快速入门

    Swift 语言快速入门 简单值 控制流 函数闭包 对象和类 枚举和结构体 协议和拓展 错误处理 泛型 由于项目原因,需要做一款 iOS 应用...然后这个任务就落到了我身上-emm 经过我的全方面了 ...

  7. 《iOS9开发快速入门》——第2章,第2.1节Xcode 7.0的新特性

    本节书摘来自异步社区<iOS9开发快速入门>一书中的第2章,第2.1节Xcode 7.0的新特性,作者 刘丽霞 , 邱晓华,更多章节内容可以访问云栖社区"异步社区"公众 ...

  8. iOS 开发怎么入门?

    2017.5.22更新. 这次答案的更新主要想把此答案 ------------- 原文 ------------- 反对以上所有答案. 我反对理由如下:不管是斯坦福大学的CS193p公开课.苹果官方 ...

  9. 1、swift开发iOS——基础

    swift开发iphone app SWIFT Swift 是一种支持多编程范式和编译式的开源编程语言,苹果于2014年WWDC(苹果开发者大会)发布,用于开发 iOS,OS X 和 watchOS ...

最新文章

  1. 抠图+修图+调色+合成+特效Photoshop核心应用5项修炼pdf
  2. Oracle之数据操作__分组统计查询
  3. 如何用四个月搞定java?
  4. debian 重复执行sh_debian 脚本启动方式
  5. python拖拽获取文件路径_求助tkinter模块如何获取拖拽文件的内容
  6. java加载阶段内存分配_Java核心:类加载和JVM内存的分配
  7. golang刷Leetcode系列 --- 实现strStr()
  8. 反转链表-迭代反转法
  9. 阿里巴巴大数据竞赛(2014年3月10日到11月)
  10. 学人工智能可以干什么?AI岗位有哪些?
  11. 记忆尤深的博贺港海鲜
  12. 疫情汹涌,餐饮行业如何修炼内功科学选址?——市场趋势及数据洞察篇
  13. 【笔记】案例研究(红酒和白酒)
  14. 荷兰国旗排序的几种解法
  15. 对单链表实现就地逆置
  16. TP,TN,FP,FN,F1,TPR,FPR (一图看懂)
  17. u盘显示0字节怎么办?数据怎么恢复?
  18. linux下单Nginx部署文档
  19. hadoop生态圈各产品基本概念梳理
  20. Ubuntu 13.10 安装stardict词典(星际译王)

热门文章

  1. 计算机图形学方向投稿国外期刊
  2. web 界面设计 Axure元件样式
  3. 为什么要有 hash 和 history
  4. docker --- 将已有的项目发布到云端
  5. 14 代码分割之lazy:Suspense与路由懒加载
  6. 《领域特定语言》一1.5使用代码生成
  7. 微软Edge扩展工具箱旨在将Chrome扩展带至Edge
  8. Ubuntu 安装 JDK 问题
  9. Reverse-engineer Source Code into UML Diagrams
  10. C#与halcon联合开发——内存溢出