Swift开发图解入门

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

……』。

对于一个程序猿来说,好的工具不意味着一定能产生优质的代码。可是好的工具对提升开发效率的作用还是不言而喻的。想要用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

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.mzph.cn/news/268757.shtml

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

java 负数存储结构_负数在java中的存储和读取过程 | 学步园

问题描述&#xff1a;将-5存储在文本文件中&#xff0c;再读取出来显示到控制台;预备知识&#xff1a;1.在java中使用补码处理数字&#xff0c;而且byte(8)的数字在扩展成int(32)类型的时候&#xff0c;正数填充0&#xff0c;负数填充1;2.负数的转变过程&#xff0c;正数的原码…

爆笑:可怜的话剧演员

地点&#xff1a;中央戏剧学院的话剧排练场。   事件&#xff1a;一场文艺剧目的排练。   人物&#xff1a;一男一女。   女&#xff08;羞涩的&#xff09;&#xff1a;我看啊&#xff0c;咱俩的婚事儿&#xff0c;都是你妈逼的。   男&#xff08;憨笑著&#xff0…

获取文本中你须要的字段的 几个命令 grep awk cut tr sed

1,grep 2,awk 3,cut 4,tr 5,sed 实例1 获取本地IP地址 /sbin/ifconfig -a|grep inet|grep -v 127.0.0.1|grep -v inet6 | awk {print $2} | tr -d "addr:" 实例2 sed 的使用。去掉某字段 前后的值 grep "select" slow.log | grep "from" | s…

一升的眼泪 日记原文+剧照

作者 木藤亚也14岁——我的家人  “我不能活动&#xff0c;可是我想活着……”   然而&#xff0c;我怎么也想不到&#xff0c;就在我生日这一天&#xff0c;却发生了一场悲剧——玛丽被邻居家养的大狗“老虎”咬破头&#xff0c;死了。玛丽虽然身体小小的&#x…

[补档]暑假集训D5总结

%dalao 今天又有dalao来讲课&#xff0c;讲的是网络流网络流——从入门到放弃&#xff1a;7-29dalao讲课笔记——https://hzoi-mafia.github.io/2017/07/29/27/果然是从入门到放弃啊&#xff0c;dalao本来说好下午继续讲完的&#xff0c;然后——就没有然后了重要的是&#xff…

在多线程中使用UDP

在多线程中使用UDP来自&#xff1a;painboy, 时间&#xff1a;2004-8-8 11:34:40, ID&#xff1a;2754268 type TUdpThread class(TThread) private FData : PChar; //数据区 FBytes : Integer; //数据区大小 FFromIP : string; //UDP的…

主流浏览器Cssjs hack写法

参考&#xff1a; BROWSER HACKS 主流浏览器的Hack写法 转载于:https://www.cnblogs.com/huangtailang/p/7279634.html

java管道流文件的复制_JavaIO 总结笔记三 基本字节字符输入输出流和文件复制...

一、IO体系1.流主要分两大类&#xff1a;字节流 字符流2.在硬盘上的文件&#xff0c;都是以二进制字节形式存储的&#xff0c;所以不管啥文件&#xff0c;读写时都应该用字节流3.在java的早期版本中&#xff0c;的确只有字节流&#xff0c;没有字符流4.一个数字或字母占1个字节…

mysql+phpmyadmin配置流程

mysqlphpmyadmin配置流程&#xff1a;环境&#xff1a;Apachephp5mysql5下载包&#xff1a;phpMyAdmin-2.11.9.4-all-languages-utf-8-only.tar.gz不能下就到这里下载 [url]http://www.phpmyadmin.net/home_page/downloads.php[/url]一&#xff1a;安装配置1> 安装包&#x…

hadoop入门小知识点

注意各个主机之间的通信 文件的复制 scp指令 scp /etc/profile acm03:/etc 所有历史版本&#xff1a; archive.apache.org hdfs://acm01:9000 hdfs是个协议 然后 访问谁 哪个端口 统一资源定位符URL 客户端统统 找nameinode 访问它 启动 datanode hadoop-dae…

java关键字整理_【java基础知识整理】java基础语法之关键字

一、continue与breakcontinue与break基本都使用与循环中&#xff0c;但是continue指结束所有循环的当前循环&#xff0c;而break是指结束整个循环。下面用代码进行简单实例。使用continue结束当前循环this&#xff1a;this关键字只能在方法内部使用&#xff0c;表示对“调用方法…

快速查询DB Lock的方法

DBCC Opentran DBCC inputBuffer(id) KILL (id) sp_lock --找出產生Lock的源頭--Find locked processselect open_tran,* from sys.sysprocesses where blocked>0 --Find suspected processselect * from sys.sysprocesses where statussleeping and waittype0x0000 and ope…

form表单多文件上传

1.html/jsp主页 <% page language"java" contentType"text/html; charsetUTF-8"pageEncoding"UTF-8"%> <!DOCTYPE html PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN" "http://www.w3.org/TR/html4/loose.dtd"…

python3.7.1使用_使用python3和pytorch1.7.1运行dface

0 准备工作运行环境&#xff1a;Alienware GTX1070Ubuntu 18.04cuda 10.1创建虚拟环境&#xff1a;conda create -n py37_dface python3.7conda activate py37_dfacepip install torch1.7.1cu101 torchvision0.8.2cu101 torchaudio0.7.2 -f https://download.pytorch.org/whl/t…

新书预告

新书预告依2009年版考试大纲 重编的《网络工程师考试考前冲刺预测卷及考点解析&#xff08;第2版&#xff0c;含2008年下半年试题解析&#xff09;》、《软件设计师考试考前冲刺预测卷及考点解析&#xff08;第2版&#xff09;》&#xff0c;试题更新率可达80%以上&#xff0c;…

JS学习记录(BOM部分)

BOOM部分 Screen <html lang"en"> <head><meta charset"UTF-8"><title>Screen</title> </head> <body></body> <script>console.log(screen.width);console.log(screen.height);console.log(screen…