学习一门新语言最经典的例子就是输出“Hello World!”

print("Hello World!")  swift就是这样来输出的。

如果你使用过其他语言,那么看上去是非常的熟悉吧。但比一些c要简单的多吧

1、不需要导入一些单独的库,比如输入/输出或字符串处理功能的类库,

2、不需要在全局范围内编写的代码用于作为入口点程序,所以你不需要 main()函数,

3、不需要写在每个语句的末尾的分号。这样写是不是很简单~

  简单值

使用let来声明一个常量,var声明一个变量。一个常量值在编译时无须知道,但你只能赋值一次,我们需要在声明时赋值,如果多次赋值会发生编译错误,如下图

一个变量值可以在声明时赋值,也可以在以后赋值。

常量或者变量的类型必须和赋给它们的值一样。然而,声明时类型是可选的,声明同时赋值的话,编译器会自动推断类型。在上面的例子中,编译器推断出var1是一个整数(integer)因为它的初始值是整数。

如果初始值没有提供足够的信息(或者没有初始值),那你需要在变量后面声明类型,用冒号分割。
数值不会被隐式转换为其他类型,必须显式转换,例如转换为字符型
若不显式转换会发生编译错误,如下图
最简单的转换为把值写到括号中,并且在括号之前写一个\
常量和变量的命名规则
1.你可以用任何你喜欢的字符作为常量和变量名,包括 Unicode 字符
即使你使用中文常量名也是毫无问题的
2.常量与变量名不能包含k数学符号,箭头,保留的(或者非法的)Unicode 码位,连线与制表符
3.不能以数字开头
4.一旦你将常量或者变量声明为确定的类型,你就不能使用相同的名字再次进行声明,或者改变其存储的值的类型。同时,你也不能将常量与变量进行互转。
5.避免使用关键字作为常量或变量名
数组和字典
使用[]来创建数组和字典,通过数组索引或字典的键(key)来访问元素。元素之间使用逗号分隔。
var shoppingList = ["catfish", "water", "tulips", "blue paint"]
shoppingList[1] = "bottle of water"var occupations = ["Malcolm": "Captain","Kaylee": "Mechanic",
]
occupations["Jayne"] = "Public Relations”

我们看一下结果

OK!和我们预期的一样。

下面我们创建一个空的数组和字典

let emptyArray = [String]()//创建一个元素为字符类型的数组
let emptyDict = [String:float]()//创建一个key为字符类型,值为浮点类型的字典

如果类型可以被推断出来,你可以使用[]和[:]来创建空的数组和字典。

  控制流

使用if和switch执行条件操作,使用for-in ,for,while,repeat-while执行循环操作。条件或循环变量的圆括号是可选的,但是语句体的大括号({})是必须的.

let individualScores = [75, 43, 103, 87, 12]
var teamScore = 0
for score in individualScores {if score > 50 {teamScore += 3} else {teamScore += 1}
}
print(teamScore)//输出11

在if语句中条件必须是一个布尔(Boolean)表达式。在这里我们明晰可以看出swift语法的简洁。

var optionalString: String? = "Hello"
print(optionalString == nil)var optionalName: String? = "John Appleseed"
var greeting = "Hello!"
if let name = optionalName {greeting = "Hello, \(name)"
}

输出结果:

false。

Hello, John Appleseed

因为optionalString和optionalName都是有具体的值,但如果optionalName=nil的话,那么greeting输出结果为Hello!

var optionalName: String? = "John Appleseed"
var greeting = "Hello!"
if let name = optionalName {greeting = "Hello, \(name)"
}
else{
greeting = "Hello,匿名"
}

输出结果

false

Hello,匿名

switch支持任意类型的数据和各种比较操作,它不局限于整数和相等的测试

let vegetable = "red pepper"
switch vegetable {
case "celery":print("Add some raisins and make ants on a log.")
case "cucumber", "watercress":print("That would make a good tea sandwich.")
case let x where x.hasSuffix("pepper"):print("Is it a spicy \(x)?")
default:print("Everything tastes good in soup.")
}

输出结果为

Is it a spicy red pepper?

转载于:https://www.cnblogs.com/salam/p/5351314.html

【Swift学习】Swift编程之旅(一)相关推荐

  1. Swift学习——Swift解释特定的基础(七)

    Implicitly Unwrapped Optionals    隐式解析选项 如上所述.可选意味着常数或变量"没有值".通过可选if声明来推断是否存在值,假设有值析值. 有时候 ...

  2. Swift的一次函数式之旅

    ????????关注后回复 "进群" ,拉你进程序员交流群???????? 本文字数:5791 字 预计阅读时间:26 分钟 本文适合哪些人? 本文针对的是已经有一部分Swift开 ...

  3. 学习Swift:经验丰富的开发人员指南

    因此,您的老板希望您学习iOS应用开发. 或者,也许您有一个要处理的应用程序侧项目. 你从哪里开始? 学习新平台和编程语言可能会令人生畏. 即使您尝试学习基础知识,也会不断发布新技术,从而很难保持最新 ...

  4. Swift学习: 从Objective-C到Swift

    作者:@方秋枋(GitHub) 这篇文章是自己学习Swift的笔记与深化.希望这篇文章能够帮助已经有Objective-C经验的开发者更快地学习Swift.同时也品味到Swift的精妙之处. 结论放在 ...

  5. 有 OC 经验的程序员快速学习 Swift 语法

    前言 苹果官方推出 Swift 语言至今,已经过了 7 年之久,Swift 也更新到了 5.5 版本, 它的语法和 API 也趋向于稳定.最近闲来无事,决定开始研究这 iOS 开发编程语言的语法.因为 ...

  6. Apple Swift学习资料汇总

    [更新]Apple Swift学习资料汇总 1月16日厦门 OSC 源创会火热报名中,奖品多多哦 »   今年的苹果开发者大会(WWDC)上,公布了ios8的几个新特性,其中包括引入了群聊功能,支持第 ...

  7. 汇集了很多swift 学习指南

    https://github.com/ipader/SwiftGuide 1,059  Unstar 7,294 Fork1,966 ipader/SwiftGuide  Code  Issues 0 ...

  8. 从0开始入门学习Swift 01

    入门学习Swift基础法语 基础介绍: 了解到想入手苹果开发会需要用到它,准备打算开始学习一下. Swift融合了许多语言的特性,对于一些有其他编程经验的人来讲会学习得非常快.因为是自学的缘故,进度和 ...

  9. 零基础使用Swift学习数据科学

    概述 Swift正迅速成为数据科学中最强大.最有效的语言之一 Swift与Python非常相似,所以你会发现2种语言的转换非常平滑 我们将介绍Swift的基础知识,并学习如何使用该语言构建你的第一个数 ...

  10. swift 学习资料大全

    版本:Swift github排名 https://github.com/trending,github搜索:https://github.com/search 主要工作说明:  1. 将Swift从 ...

最新文章

  1. 更适合程序员使用的Vim配置 显示行号 语法高亮 智能缩进
  2. 浅析“高斯白噪声”,“泊松噪声”,“椒盐噪声”的区别
  3. 划重点丨详解Java流程控制语句知识点
  4. 盐城有哪些中专计算机学校,盐城有什么中专学校
  5. android sqlite联合,在联合查询中,Android SQLiteorder by 计算列_sql_开发99编程知识库...
  6. 页面s升级中_你的电脑要不要升级内存?怎么升级?答案都在这里
  7. VC++下使用ADO编写数据库程序(关键文章)
  8. (standard input): No keywords in input file
  9. 五、pygame做一个简单的五子棋游戏
  10. VC++通过MSXML6来操作xml需要注意的内存泄漏问题
  11. 计算机省技能竞赛总结,2014技能大赛总结:技能大赛个人总结
  12. Android Studio连接手机调试出现Session 'app': Error Installing APK
  13. 2345加速浏览器有哪些特点
  14. Win10系统 格式化分配单元大小的解释与分配方法
  15. android google 登录登出接入
  16. 学校信息计算机教案百度文库,人教版信息技术教案 八年级下册_百度文库(45页)-原创力文档...
  17. Latex 中的警告 Foreign command \atop 的解决方法
  18. scrapy爬取豆瓣所有电影信息(新手入门超详细版)
  19. 未来会有哪些黑科技推动区块链技术的发展
  20. 超全面解释人、机、料、法、环,以后不怕画鱼骨图|优思学院

热门文章

  1. LeetCode算法入门- Search Insert Position -day19
  2. python的装饰器、迭代器、yield_python装饰器,迭代器,生成器,协程
  3. 单链表的代码python_python版本单链表实现代码
  4. c++ 访问控制与封装
  5. 嵌入式nosql php,NoSQL 嵌入式数据库NeDB示例
  6. 条令考试小程序辅助器_可以自己编题的答题软件,自定义题库考试出题工具,微信答题小程序...
  7. java getdelay_java中DelayQueue的一个使用陷阱分析
  8. python优化网站_[练习] 用PYTHON来优化网站中的图片
  9. coordinatorlayout_一篇文章学会Coordinatorlayout+AppbarLayout
  10. php 伪静态 获取当前页面路径_织梦移动适配PHP获取当前页面URL地址方法